docx 파일을 복사해야하는 Delphi 7 프로그램이 있습니다. Windows API CopyFile 함수를 사용하고 있습니다. 문제는이 함수가 이전 doc 형식으로 숨겨진 변환을하는 것 같습니다. 첫 번째 문제 : 복사 후에 파일 크기가 증가합니다. 두 번째 : Office 2007에서 파일을 열 때 다음과 같은 오류 메시지가 나타납니다. 문서 또는 디스크에 대한 사용 권한을 확인하고 여유 디스크 공간을 확인하십시오.CopyFile docx는 문서로 숨겨진 변환을합니다
이상한 것보다 : 내가 TotalCommander에서 docx에서 doc로 복사 한 파일의 확장자를 변경하면 정상적으로 열립니다. 그래서 그것은 왜 숨겨진 변환을하지 않는 것 같습니다.
서로 다른 두 대의 컴퓨터에서 테스트되었습니다. 둘 다 Win XP Prof SP3, Office 2007 Prof Plus SP2
아이디어가 있으십니까?
함수 본문은 다음과 같습니다 :
Result := IObsSzab.GetTempFullFileName('.tmp');
Result := ChangeFileExt(Result, ExtractFileExt(openDlg.FileName));
나는 당신의
GetTempFullFileName
기능 덕에 .DOCX 절단 생각 다음과 같이
function TDlgNowySzablon.PobierzPlikNaDoc() : string;
var
openDlg : TOpenDialog;
begin
Result:='';
openDlg:=TOpenDialog.Create(self);
openDlg.Filter:='Dokumenty Microsoft Word (*.doc;*docx)|*.doc;*.docx';
if openDlg.Execute then begin
Result := IObsSzab.GetTempFullFileName(ExtractFileExt(openDlg.FileName));
if not CopyFile(PChar(openDlg.FileName),PChar(Result),true) then begin
Result:='';
end;
end;
openDlg.Free;
end;
"첫 번째 : 복사 후 파일 크기가 커집니다." 그 일이 정말로 확실한가요? – CodesInChaos
Windows'CopyFile' 함수는 Microsoft Word DOCX 파일을 DOC로 변환하지 않습니다. Microsoft Word와는 아무런 관련이 없습니다. –