2012-06-16 37 views
7

我想使用荏苒文件夾

TZipFile.ZipDirectoryContents() 

像這樣:

TZipFile.ZipDirectoryContents('Test.PCF', 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

,我不familar與TZipFile但會不會是 'Test.PCF' 是內:

以編程方式創建一個zip文件:

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

這一行工作,然後你正試圖壓縮的目錄? –

回答

14

我測試了你的代碼,它的失敗方式和你報告的一樣。

然後我通過運行WinZip手動創建一個空的zip文件。

然後運行你的代碼,它運行良好。

看起來ZipDirectoryContents的zip文件已經存在。同樣

TZipFile.ZipDirectoryContents('c:\myfolder\newzipfile.zip', WorkingDir);