2017-01-22 28 views
0

我想檢查某個特定文件的zip文件內容(拖放)並使用類似下面的方法;在Delphi 10.1中使用Abbrevia進行文件發佈檢查

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的)。但是對於第一個文件:我已經比「test.txt」添加了「readme.txt」文件。第二個我添加了「test.txt」而不是「readme.txt」。我的意思是我改變了文件添加的順序。

刪除第一個文件後,程序顯示一條消息爲「存在」,但第二個文件「不存在」。我認爲FindFile方法僅搜索zip內容的第一個文件。有沒有正確的方式來搜索文件而不關心訂單? 謝謝。

回答

5

FindFile返回文件的索引。您描述的場景可以是0或1。所以測試>0是錯誤的。如果目標文件是ZIP容器中的第一個,則其索引爲0

找不到文件時返回索引-1。所以用<> - 1代替>0

+1

謝謝你這麼多..你救了我的一天.. – Alper

+2

很高興看到大衛保存你的一天,這就是大衛總是:) – Sami

+3

一些調試也會有幫助,但似乎很多開發者缺乏這種技能如今... – whosrdaddy

相關問題