如何在 TZFProcessFileFailureEvent 中使用 fxaIgnore



如何忽略错误 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 联机帮助中查找如何执行此操作。

相关内容

  • 没有找到相关文章

最新更新