gpt4 book ai didi

delphi - 删除文件不起作用

转载 作者:行者123 更新时间:2023-12-03 15:41:16 27 4
gpt4 key购买 nike

似乎在我的代码中的某个地方,我正在使用的文件以某种方式保留了它,因为我似乎无法删除它。我的 CopyFile 例程似乎有效,但复制完成后,我似乎无法删除它。

   FSize:=  GetFileSizeExt(InPath + InFileName);
if FSize <= 0 then
begin
//archive file
if AfterAction = 'MOVE' then
begin
tmpExt:= ExtractFileExt(InFileName);
if CopyFile(PChar(InPath + InFileName), PChar(MovePath + '\' + ChangeFileExt(InFileName,'') + '_' + FormatDateTime('mmddyyyy-hhmmss', Now) + tmpExt), True) then
begin
if not DeleteFile(pchar(InPath + InFileName)) then
begin
ExitCode:= 8;
raise ECustomException.Create('Invalid After Action. Error Deleting File!');
end;
end //if CopyFile
else //if not DeleteFile
begin
ExitCode:= 16;
raise ECustomException.Create('File Copy Error!');
end; //else
end; //if AfterAction = 'MOVE' then
ExitCode:= 17;
raise ECustomException.Create('Error Getting file size OR file size less than or equal to zero!');
end; //if filesize =0

当我在线上设置断点时
如果不删除文件
它总是最终引发异常。 InPath 和 InFileName 与
中使用的匹配复制文件例程

无论如何,我在尝试删除文件时总是遇到错误。这与文件大小有关系吗?我仅在文件大小 <= 0

时复制和删除

最佳答案

如果您不知道删除文件失败的原因,为什么不让操作系统告诉您呢?替换此代码:

raise ECustomException.Create('Invalid After Action. Error Deleting File!');

RaiseLastOSError

我认为问题与您所显示的代码无关,因此以下是要检查的事项列表:

  • 该文件不是只读的。
  • 该文件不在只读媒体上。
  • 运行应用程序的用户有权删除该文件。
  • 该文件未被使用。

我会做的另一件事:当出现无法删除文件的异常时,在 IDE 中点击 RUN 之前,我会转到 Windows 资源管理器并尝试自己删除文件。

关于delphi - 删除文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5390477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com