我知道通常建議使用DotNetZip或SharpZipLib庫來創建.net語言的ZIP文件(本例中爲C#),但它不是不可能使用System.IO.Packaging
生成ZIP文件。我認爲可以嘗試在C#中開發一個可以實現它的例程,而不需要下載任何外部庫。有沒有人有使用System.IO.Packaging
生成ZIP文件的方法的一個很好的例子?使用System.IO.Packaging生成一個ZIP文件
12
A
回答
29
讓我google一下你 - > System.IO.Packaging程序+生成+拉鍊
using System;
using System.IO;
using System.IO.Packaging;
namespace ZipSample
{
class Program
{
static void Main(string[] args)
{
AddFileToZip("Output.zip", @"C:\Windows\Notepad.exe");
AddFileToZip("Output.zip", @"C:\Windows\System32\Calc.exe");
}
private static void AddFileToZip(string zipFilename, string fileToAdd, CompressionOption compression = CompressionOption.Normal)
{
using (Package zip = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate))
{
string destFilename = ".\\" + Path.GetFileName(fileToAdd);
Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
if (zip.PartExists(uri))
{
zip.DeletePart(uri);
}
PackagePart part = zip.CreatePart(uri, "", compression);
using (FileStream fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.Read))
{
using (Stream dest = part.GetStream())
{
fileStream.CopyTo(dest);
}
}
}
}
}
}
+0
當然,但這並不需要一個路徑,並將其所有的目錄和文件添加到ZIP中;必須手動指定單個文件。 – Jez 2011-06-17 13:27:14
9
在.NET框架4.5,您可以在System.IO.Compression
使用新類命名空間。
相關問題
- 1. 使用c#生成zip文件代碼
- 2. 從一組共享文件集中生成一個tar和一個zip文件
- 3. 由PHP文件生成的Zip文件
- 4. 使用symfony框架導出多個pdf生成一個zip文件
- 5. 使用PDF生成ZIP內
- 6. System.IO.Packaging庫不讀取標準的Windows zip文件
- 7. 使用PHP生成一個XML文件
- 8. 使用jinja生成一個CSV文件
- 9. 是否可以使用App Engine生成並返回一個ZIP文件?
- 10. 使用PHP創建一個zip文件
- 11. joomla ZipArchive生成無效的zip文件
- 12. 從servlet下載生成的zip文件
- 13. java servlet:從BLOB生成zip文件
- 14. 如何在asp.net中生成zip文件
- 15. 使用System.IO.Packaging for FlatOPC
- 16. 創建一個包含動態生成的文件的ZIP文件
- 17. 使用NSIS生成zip存檔而不是可執行文件
- 18. javascript-如何使用FileSaver.js生成並保存空的zip文件
- 19. zip文件模塊錯誤:文件不是一個zip文件
- 20. 使用Java將多個pdf文件壓縮成單個文件zip文件
- 21. 使MIMETYPE文件成爲EPUB ZIP文件中的第一個文件?
- 22. System.IO.Packaging
- 23. 使用Zip4j生成Zip下載
- 24. 使用msgcat生成.properties文件中的.PO文件並將生成的.po文件連接成一個.PO
- 25. 使用PowerShell循環使用VCF文件生成一個VCF
- 26. 使用wicked_pdf從生成的PDF生成ZIP
- 27. 要將zip文件複製到另一個zip文件
- 28. 使用phantom.js生成多個HAR文件
- 29. 如何使用Rails3生成多個圖像並將它們放到一個zip文件中進行下載? 。
- 30. 如何使用ZipEntry讀取位於另一個zip文件中的一個zip文件中的數據?
好的,在閱讀了一下之後,它看起來像使用System.IO.Packaging的尷尬並不是人們像鼠疫一樣避免它的唯一原因;它也會在生成的每個壓縮文件中生成一個愚蠢的[Content_Types] .xml文件,並且存在與其他zip文件客戶端兼容性的嚴重問題。所以...我想我會使用DotNetZip。 :-) – Jez 2011-06-17 14:05:50