gpt4 book ai didi

delphi - 如何在 TZFProcessFileFailureEvent 中使用 fxaIgnore

转载 作者:行者123 更新时间:2023-12-02 04:02:29 26 4
gpt4 key购买 nike

如何忽略错误00033?发生此错误是因为另一个进程正在使用该文件。

Image 1 Image 2

是否可以更改事件处理程序,以便在出现错误 00033 时忽略该文件并跳转到下一个?

type TZFProcessFileFailureEvent = procedure ( 
Sender: TObject;
FileName: String;
Operation: TZFProcessOperation;
NativeError: Integer;
ErrorCode: Integer;
ErrorMessage: String;
var Action: TZFAction
) of object;

type TZFAction = (fxaRetry, fxaIgnore, fxaAbort);

property OnProcessFileFailure: TZFProcessFileFailureEvent;

我的 zip 文件代码...

var
archiver : TZipForge;

begin
// Create an instance of the TZipForge class
archiver := TZipForge.Create(nil);
try
with archiver do
begin
// Set the name of the archive file we want to create
FileName := 'C:\test.zip';
// Because we create a new archive,
// we set Mode to fmCreate
OpenArchive(fmCreate);
// Set base (default) directory for all archive operations
BaseDir := 'C:\';
// Add files to the archive by mask
AddFiles('*.exe');
CloseArchive();
end;
except
on E: Exception do
begin
Writeln('Exception: ', E.Message);
// Wait for the key to be pressed
Readln;
end;
end;
end.

最佳答案

您是否尝试过将这样的代码添加到您的 OnProcessFileFailure 处理程序

if NativeError = 1033 then
Action := fxaIgnore;

即使您没有所使用的压缩库的可用文档,线索也在于 TZFProcessFileFailureEvent 事件的 Action 参数被声明为 var 参数。这意味着您在处理程序内对其值所做的任何更改都会传递回调用事件处理程序的代码,以便您可以向其发出信号,告知您希望它如何对发生的事件使用react。

顺便说一句,我不确定你为什么将 image1 包含在你的 q 中,因为你没有问过这一点。如果您想知道如何处理特定类型的异常,例如异常处理程序中的 EFOpenError,请在 Delphi 在线帮助中查找如何操作。

关于delphi - 如何在 TZFProcessFileFailureEvent 中使用 fxaIgnore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37488420/

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