2017-01-22 4 views
0

特定のファイルのzipファイルの内容(ドラッグアンドドロップ)をチェックしようとしていますが、私は以下のような方法を使用しています。デルファイ10.1の略語付きファイル出現チェック

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ファイルを作成し、両方に2つのtxtファイル(readme.txtとtest.txt)を追加しました。しかし最初のファイルへ: "read.txt"ファイルを "test.txt"より先に追加しました。 2番目には "readme.txt"より "test.txt"を追加しました。私はファイルの追加順序を変更したことを意味します。

最初のファイルを削除した後、プログラムは「存在する」としてメッセージを表示しますが、2番目のファイル「存在しない」のメッセージを表示します。私は、FindFileメソッドは、Zipコンテンツの最初のファイルのみを検索すると思います。注文を気にせずにファイルを検索する正しい方法はありますか?おかげさまで

答えて

5

FindFileは、ファイルのインデックスを返します。あなたが記述したシナリオでは、0または1のいずれかです。したがって、>0のテストは間違っています。ターゲットファイルがZIPコンテナの最初のファイルである場合、そのインデックスは0です。

ファイルが見つからない場合は、-1のインデックスが返されます。したがって、>0<> - 1に置き換えてください。

+1

ありがとうございました。私はあなたの日を救ってくれました。 – Alper

+2

デビッドがあなたの日を節約するのはいいですね、デビッドはいつもそうしています:) – Sami

+3

デバッグの少しでも役に立ちましたが、今日は... – whosrdaddy

関連する問題