Delphi Word自动化&x27;s SaveAs不会将文件保存在一台计算机的特定文件夹中
我在一个特定的Win10机器上工作了多年的代码上遇到了一个问题 出现问题的函数如下所示:Delphi Word自动化&x27;s SaveAs不会将文件保存在一台计算机的特定文件夹中,delphi,office-automation,Delphi,Office Automation,我在一个特定的Win10机器上工作了多年的代码上遇到了一个问题 出现问题的函数如下所示: Function SaveAsTextFile(sFile :String):String; const vi_wdFormatText = 2; var Word, Doc : OleVariant; NewFileName,FileName : String; sFileName,sExt, SPath : String;
Function SaveAsTextFile(sFile :String):String;
const
vi_wdFormatText = 2;
var
Word, Doc : OleVariant;
NewFileName,FileName : String;
sFileName,sExt, SPath : String;
begin
Result := '';
Word := CreateOleObject('Word.Application');
try
FileName := sFile;
sFileName := ExtractFileName(sFile);
sExt := ExtractFileExt(sFile);
SPath := ExtractFilePath(sFile);
NewFileName := CompletePath(sPath)+ Copy(sFileName,1,Length(sFileName)-Length(sExt))+'.txt';
Word.Visible := False;
Doc := Word.Documents.Open(FileName);
Word.ActiveDocument.SaveAs( NewFileName, vi_wdFormatText);
Word.ActiveDocument.Close(wdDoNotSaveChanges);
Result := NewFileName;
finally
Word.Quit(wdDoNotSaveChanges);
Word := Unassigned;
end;
end;
运行时没有异常,无论如何,创建该文件的txt文件
Word.ActiveDocument.SaveAs(NewFileName,vi_wdFormatText)代码>
不显示在指定的文件夹中。
该文件夹是一个AppData\Local
文件夹,该问题只发生在一台显然没有什么特殊功能的特定机器上,事实上有一台性能良好的双机
“版本”一词是2019年(特别是1912年)
请注意,如果我使用c:\temp
而不是Appdata
文件夹,该函数将正常工作
办公自动化是否可能限制在特定的机器上
请给出一些有用的提示?您要保存的确切路径和文件名是什么?否则,,NewFileName
?c:\users\Myuser\AppData\Local\Myapp\Documents\currentuser\1234.txtI的值建议使用ProcessMonitor监视程序和/或Word执行的文件系统操作,以确保访问的路径确实是您认为的路径。只是为了确保:您已检查目录存在而文件不存在该代码在任何其他机器上都能正常工作,只有在一台特定的Windows10电脑上我遇到了问题。在这台电脑上,SaveAs没有保存txt文件,因此其余的代码不起作用。您要保存的确切路径和文件名是什么?否则,,NewFileName
?c:\users\Myuser\AppData\Local\Myapp\Documents\currentuser\1234.txtI的值建议使用ProcessMonitor监视程序和/或Word执行的文件系统操作,以确保访问的路径确实是您认为的路径。只是为了确保:您已检查目录存在而文件不存在该代码在任何其他机器上都能正常工作,只有在一台特定的Windows10电脑上我遇到了问题。在这台电脑上,SaveAs不保存txt文件,因此其余代码不起作用。