2011-12-19 38 views
2

我需要在iOS應用程序中壓縮我的文檔文件夾的子目錄。在諮詢Google和其他SO帖子之後,我發現ZipKit和ZipArchive是兩個提供此功能的開源項目。在這一點上,我選擇實現ZipKit,因爲它似乎比ZipArchive更爲現實。如何使用ZipKit在iOS中壓縮目錄?

我發現了一些如何解壓縮壓縮文件的例子,但一直沒有找到如何將目錄壓縮成.zip文件的例子。我嘗試了下面的代碼,它返回了一個成功的結果狀態,但實際上沒有生成zip文件。

// projectPath is /Documents/projects/myproject 
ZKDataArchive *archive = [[ZKDataArchive alloc] init]; 
NSInteger result = [archive deflateDirectory:projectPath relativeToPath:nil usingResourceFork:NO]; 

我確定有一些基本的東西我做得不對,但一直沒有弄清楚它是什麼。特別是,我還沒有弄清deflateDirectory的每個參數的含義:

如果任何人都可以指出我正確的方向(或有其他建議在iOS上壓縮目錄),我將不勝感激。

謝謝!

+0

如果你的projectPath是/ Documents/projects/myproject,它可能是錯誤的。你的zip文件在哪裏? – 2011-12-19 19:00:31

+0

我需要創建一個zip文件,所以現在還沒有。我假設這可能會創建一個與目錄名稱相同的zip文件,但如果我需要在某處指定zip名稱,我不會感到驚訝。只是還沒有想出哪裏... – jmac 2011-12-19 19:20:54

回答

9

成功。這裏的獨家新聞爲別人:

比方說,我們要壓縮/文件/ MyFolder中

NSString *zipFilePath = @"/Documents/zipped.zip"; 
ZKFileArchive *archive = [ZKFileArchive archiveWithArchivePath:zipFilePath]; 
NSInteger result = [archive deflateDirectory:@"/Documents/myfolder" relativeToPath:@"/Documents" usingResourceFork:NO]; 

,並創建壓縮文件!

+0

謝謝。我期望** Directory **是參考函數中第二個參數的相對路徑。 – Conor 2015-05-25 16:52:00