我正在尝试检查特定文件的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;
为此,我创建了2个zip文件,并在两者中添加了两个txt文件(readme.txt和test.txt).但是对于第一个文件:我首先添加了"readme.txt"文件而不是"test.txt".对于第二个,我添加了"test.txt"而不是"readme.txt".我的意思是我已经改变了文件添加的顺序.
删除第一个文件后,程序显示"存在"的消息,但第二个文件"不存在".我认为FindFile方法只搜索zip内容的第一个文件.有没有正确的方法来搜索文件而不关心订单?谢谢.
FindFile
返回文件的索引.您描述的方案可以是0或1.所以测试>0
是错误的.如果目标文件是ZIP容器中的第一个,那么它的索引是0
.
-1
找不到文件时返回索引.所以>0
用<> - 1
.替换.