Я получил программу Delphi 7, которая должна копировать файл DOCX.Я использую функцию Windows API CopyFile .Проблема в том, что эта функция, кажется, делает скрытое преобразование в более старый формат документа.Первое: размер файла увеличивается после копирования.Второе: при открытии файла в Office 2007 я получил сообщение об ошибке, в котором говорится: Проверьте свои права доступа к документу или диску, проверьте свободное место на диске .
И чем странная вещь:я меняю в TotalCommander расширение скопированного файла с docx на doc он открывается нормально.Так что, кажется, сделать скрытое преобразование, не знаю почему.
Проверено на двух разных компьютерах.Оба Win XP Prof SP3, Office 2007 Prof Plus SP2
Есть идеи?
Тело функции ниже:
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;