在 Delphi XE7 IDE中运行程序时不能创建日志文件,但运行创建的exe时可以工作

but5z9lq  于 2022-11-29  发布在  其他
关注(0)|答案(1)|浏览(155)

当我在IDE中启动一个程序时,我使用下面的代码生成一个日志文件。所有路径都是正确的,用F8检查,但是日志文件没有输出。
当我在IDE外部运行可执行文件时,可以正确输出日志文件。
XE 7中是否有禁止这种情况的设置?

procedure LogProgram(const aEvent: String);
var
  TheLogFileName, TheLogLine: String;
  TheLogFile: TextFile;
  TheDay, TheMonth, TheYear, TheHour, TheMinute, TheSecond,
    TheMilliSecond: Word;
begin
  TheLogFileName := Format('%s%d.log', [usPATH_LOGS, Trunc(Now)]);
  AssignFile(TheLogFile, TheLogFileName);
  if not FileExists(TheLogFileName) then
    Rewrite(TheLogFile);
  Append(TheLogFile);
  DecodeDateTime(Now, TheYear, TheMonth, TheDay, TheHour, TheMinute, TheSecond,
    TheMilliSecond);
  TheLogLine := Format('%d-%d-%d: %d:%d:%d:%d%s%s', [TheYear, TheMonth, TheDay,
    TheHour, TheMinute, TheSecond, TheMilliSecond, #9, aEvent]);
  Writeln(TheLogFile, TheLogLine);
  CloseFile(TheLogFile);
end;

我尝试使用上面的代码输出一个文件,当一个程序在 Delphi XE 7 IDE中运行时,期望得到一个日志(文本)文件,但没有得到输出。在IDE之外运行相同的程序会正确地生成日志(文本)文件。
@fpiette我检查了Windows安全和文件夹保护是不活动的。
@Andreas-Rejbrand我使用的是相对路径。路径是相对于可执行文件的路径计算的
@SilverWarior我没有在 Delphi 中通过菜单运行-〉参数更改任何内容。没有列出路径。

pxyaymoc

pxyaymoc1#

我做了一个全局搜索(在我的电脑上)的文件名,我试图创建和发现它在一个包含文件夹(c:\VTRoot)由科摩多防病毒管理。
事实证明,如果Comodo认为正在创建的文件存在安全风险,它会将其移动到C:
我去了科摩多 Jmeter 板和禁用自动遏制,现在 Delphi XE7的工作,因为它应该。

相关问题