9

使用しようとしています

TZipFile.ZipDirectoryContents()

そのようです:

TZipFile.ZipDirectoryContents('Test.PCF', WorkingDir);

この権利を読んでいると、フォルダ「workingdir」の内容がTest.pcfという名前のファイルに保存されるはずです。

これを行うと、エラーが発生します::

Raised exception class EFOpenError with message Cannot open file
...test.pcf. The process cannot access the file because its being used by another process."

2つのことが私を混乱させます:

  1. ファイルを開けないとのことです。test.pcfはまだありません。私はこれがそれを作成することを望んでいました。

  2. ファイルにアクセスできないと表示されます。まだ作成されていないからですか?この関数を使用していますか?もしそうなら、どのようにフォルダの場所からzipファイルを作成しますか?

4

1 に答える 1

17

私はあなたのコードをテストしました、そしてそれはあなたが報告したのと同じ方法で失敗しました。

次に、WinZipを実行して空のzipファイルを手動で作成しました。

次に、コードを実行すると、正常に実行されました。

ZipDirectoryContentsが機能するには、zipファイルがすでに存在している必要があるようです。

プログラムでzipファイルを作成するには:

  myZipFile := TZIpFile.Create;
  myZipFile.Open('c:\myfolder\newzipfile.zip', TZipMode.zmWrite);
  myZipFile.Close;
  myZipFile.Free;

この行は機能します:

  TZipFile.ZipDirectoryContents('c:\myfolder\newzipfile.zip', WorkingDir);
于 2012-06-17T01:39:54.037 に答える