从文件夹中的所有文件创建zip文件
我正在尝试从文件夹中的所有文件创建一个zip文件,但无法在线找到任何相关的代码段。 我正在尝试做这样的事情:
DirectoryInfo dir = new DirectoryInfo("somedir path"); ZipFile zip = new ZipFile(); zip.AddFiles(dir.getfiles()); zip.SaveTo("some other path");
很感谢任何forms的帮助。
编辑:我只想压缩文件夹中的文件,而不是它的子文件夹。
using System.Compression.IO string startPath = @"c:\example\start";//folder to add string zipPath = @"c:\example\result.zip";//URL for your ZIP file ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true); string extractPath = @"c:\example\extract";//path to extract ZipFile.ExtractToDirectory(zipPath, extractPath);
要仅使用文件,请使用:
//Creates a new, blank zip file to work with - the file will be //finalized when the using statement completes using (ZipArchive newFile = ZipFile.Open(zipName, ZipArchiveMode.Create)) { foreach (string file in Directory.GetFiles(myPath)) { newFile.CreateEntryFromFile(file); } }
在项目中引用System.IO.Compression
和System.IO.Compression.FileSystem
,您的代码可以是:
string startPath = @"some path"; string zipPath = @"some other path"; var files = Directory.GetFiles(startPath); using (FileStream zipToOpen = new FileStream(zipPath, FileMode.Open)) { using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Create)) { foreach (var file in files) { archive.CreateEntryFromFile(file, file); } } }
在某些文件夹中,您可能遇到权限问题。