簡體   English   中英

如何壓縮文件夾中的所有文件

[英]How to zip all files in folder

我有一個文件夾"D:\\folder" ,在這個文件夾中我有10個文件需要壓縮到新的存檔"D:\\folder.zip"

目前我正在使用ICSharpCode.SharpZipLib,但這不是強制性要求,因此可以接受其他解決方案。

我面臨的問題是,當我嘗試執行方法FileStream fs = File.OpenRead(@"D:\\folder")由於訪問指定的路徑,我收到錯誤。

如何以簡單的方式壓縮這些文件?

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

我也同意Antonio Bakula建議使用DotNetZip而不是SharpZipLib。

.NET 4.5包含用於操作.zip文件的新ZipArchiveZipFile類。 有了這種支持,你要做的就是通過以下方式完成:

ZipFile.CreateFromDirectory(@"D:\Folder", @"Folder.zip");

作為旁注,您收到錯誤的原因是因為您嘗試打開目錄而不是文件。 File.OpenRead用於打開文件以供讀取,因為您提供了一個目錄,就會收到錯誤。 如果要枚舉特定文件夾中的文件或目錄,則可以使用Directory.EnumerateFilesDirectory.EnumerateDirectories

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM