我正在尝试使用
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."
有两件事令我困惑:
它说它无法打开文件。还没有test.pcf。我希望这会创造它。
它说无法访问文件。这是因为它还没有创建吗?我使用这个功能吗?如果是这样,我如何从文件夹位置创建一个zip文件?
答案 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);