压缩文件夹

时间:2012-06-16 23:08:25

标签: delphi delphi-xe

我正在尝试使用

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."

有两件事令我困惑:

  1. 它说它无法打开文件。还没有test.pcf。我希望这会创造它。

  2. 它说无法访问文件。这是因为它还没有创建吗?我使用这个功能吗?如果是这样,我如何从文件夹位置创建一个zip文件?

1 个答案:

答案 0 :(得分:16)

我测试了您的代码,但它的失败方式与您报告的相同。

然后我通过运行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);