在Delphi 10.1中使用Abbrevia进行文件检查

Alp*_*per 0 delphi abbrevia

我正在尝试检查特定文件的zip文件内容(拖放),我正在使用如下方法;

procedure TForm1.DropTarget1Dropped(Sender: TObject; const Data: TDragObject;
  const Point: TPointF);
  var i:Integer;
begin
AbZipKit1.FileName := Data.Files[0];
if AbZipKit1.FindFile('readme.txt')>0 then showmessage(‘exists’) else
  begin
   showmessage(‘non-exists’);
end;
end;
Run Code Online (Sandbox Code Playgroud)

为此,我创建了2个zip文件,并在两者中添加了两个txt文件(readme.txt和test.txt).但是对于第一个文件:我首先添加了"readme.txt"文件而不是"test.txt".对于第二个,我添加了"test.txt"而不是"readme.txt".我的意思是我已经改变了文件添加的顺序.

删除第一个文件后,程序显示"存在"的消息,但第二个文件"不存在".我认为FindFile方法只搜索zip内容的第一个文件.有没有正确的方法来搜索文件而不关心订单?谢谢.

Dav*_*nan 5

FindFile返回文件的索引.您描述的方案可以是0或1.所以测试>0是错误的.如果目标文件是ZIP容器中的第一个,那么它的索引是0.

-1找不到文件时返回索引.所以>0<> - 1.替换.

  • 一些调试也会有所帮助,但似乎许多开发人员现在缺乏这种技能...... (3认同)
  • 很高兴看到大卫拯救你的一天,这就是大卫总是做的:) (2认同)