的文件,我有一個文件夾"D:\folder"
和此文件夾中我有10個文件,我需要壓縮到一個新的存檔"D:\folder.zip"
。如何壓縮文件夾中
目前我正在使用ICSharpCode.SharpZipLib但這不是強制性要求,所以其他解決方案是可以接受的。
我現在面臨的問題是,當我嘗試執行方法FileStream fs = File.OpenRead(@"D:\folder")
我得到的,因爲訪問specifided路徑的錯誤。
如何以簡單的方式壓縮這些文件?
的文件,我有一個文件夾"D:\folder"
和此文件夾中我有10個文件,我需要壓縮到一個新的存檔"D:\folder.zip"
。如何壓縮文件夾中
目前我正在使用ICSharpCode.SharpZipLib但這不是強制性要求,所以其他解決方案是可以接受的。
我現在面臨的問題是,當我嘗試執行方法FileStream fs = File.OpenRead(@"D:\folder")
我得到的,因爲訪問specifided路徑的錯誤。
如何以簡單的方式壓縮這些文件?
DotNetZip但更易於SharpZipLib,例如壓縮和解文件夾中的所有文件的使用方法:
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(@"MyDocuments\ProjectX", "ProjectX");
zip.Save(zipFileToCreate);
}
這是一個從這個頁面的例子:
http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples
是的,這是一個更容易使用比SharpLib使用,1 –
庫謝謝!你能說我這個ZipFile需要哪個程序集嗎? Ionic.Zip - 據我瞭解。正確? –
程序集是Ionic.Zip.dll –
我也同意Antonio Bakula建議使用DotNetZip而不是SharpZipLib。
.NET 4.5包括新ZipArchive
和ZipFile
類用於操縱.zip文件。有了這種支持你正在嘗試做的是通過以下步驟完成:
ZipFile.CreateFromDirectory(@"D:\Folder", @"Folder.zip");
作爲一個側面說明你的錯誤的原因是因爲你試圖打開一個目錄,而不是一個文件。 File.OpenRead
用於打開文件以供讀取,因爲您提供了一個目錄,所以會出現錯誤。如果要枚舉特定文件夾中的文件或目錄,則可以使用Directory.EnumerateFiles
或Directory.EnumerateDirectories
。
快速谷歌搜索:http://www.codeproject.com/Articles/37887/C-Zip-Files-and-or-Folders - 也許可以幫助你。 –
請參閱[如何閱讀特定文件夾內的所有文件](http://stackoverflow.com/questions/5840443/how-to-read-all-files-inside-particular-folder)。 [在C#郵編夾]的 –
可能重複(http://stackoverflow.com/questions/905654/zip-folder-in-c-sharp) –