我知道通常建議使用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. 生成一個空的zip文件java
- 2. 使用System.IO.Packaging在c#中創建zip
- 3. OutOfMemoryException使用System.IO.Packaging創建大型ZIP文件時
- 4. 使用System.IO.Packaging在c#中解壓縮zip文件
- 5. 使用c#生成zip文件代碼
- 6. 從一組共享文件集中生成一個tar和一個zip文件
- 7. 由PHP文件生成的Zip文件
- 8. 用ExpressJS發送生成的zip文件
- 9. 使用symfony框架導出多個pdf生成一個zip文件
- 10. System.IO.Packaging庫不讀取標準的Windows zip文件
- 11. 使用PDF生成ZIP內
- 12. 使用PHP生成一個XML文件
- 13. 使用jinja生成一個CSV文件
- 14. 是否可以使用App Engine生成並返回一個ZIP文件?
- 15. 使用VBScript一個zip文件
- 16. 使用PHP創建一個zip文件
- 17. 使用System.IO.Packaging for FlatOPC
- 18. 生成的ZIP文件損壞/無效
- 19. joomla ZipArchive生成無效的zip文件
- 20. 從生成的URL獲取ZIP文件
- 21. java servlet:從BLOB生成zip文件
- 22. 如何在asp.net中生成zip文件
- 23. 從servlet下載生成的zip文件
- 24. 創建一個包含動態生成的文件的ZIP文件
- 25. javascript-如何使用FileSaver.js生成並保存空的zip文件
- 26. 使用NSIS生成zip存檔而不是可執行文件
- 27. 使用SharpZipLib解壓縮另一個zip內的zip文件
- 28. Maven從生成的資源生成zip文件
- 29. System.IO.Packaging
- 30. 使用Java將多個pdf文件壓縮成單個文件zip文件
好的,在閱讀了一下之後,它看起來像使用System.IO.Packaging的尷尬並不是人們像鼠疫一樣避免它的唯一原因;它也會在生成的每個壓縮文件中生成一個愚蠢的[Content_Types] .xml文件,並且存在與其他zip文件客戶端兼容性的嚴重問題。所以...我想我會使用DotNetZip。 :-) – Jez 2011-06-17 14:05:50