如何忽略错误 00033? 发生此错误是因为另一个进程正在使用该文件。
图片 1图片 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
参数。 这意味着您在处理程序中对其值所做的任何更改都将传递回调用事件处理程序的代码,以便您可以向它发出您希望它如何对发生的事件做出反应的信号。
顺便说一句,我不确定你为什么在你的 q 中包含你的 image1,因为你没有问过这个问题。 如果您想知道如何处理特定类型的异常(如异常处理程序中的异常EFOpenError
),请在 Delphi 联机帮助中查找如何执行此操作。