Tag: zipfile

使用C#压缩单个文件

我正在使用.NET 4.5,如果我尝试使用“CreateFromDirectory”压缩整个目录,ZipFile类的效果很好。 但是,我只想在目录中压缩一个文件。 我试着指向一个特定的文件(文件夹\ data.txt),但这不起作用。 我考虑过ZipArchive类,因为它有一个“CreateEntryFromFile”方法,但似乎这只允许你创建一个现有文件的条目。 有没有办法简单地压缩一个文件而不创建一个空的zipfile(有它的问题),然后使用ZipArchiveExtension的“CreateEntryFromFile”方法? **这也是假设我正在开发一个目前无法使用第三方附加组件的公司计划。 示例来自: http : //msdn.microsoft.com/en-us/library/ms404280%28v=vs.110%29.aspx string startPath = @”c:\example\start”; string zipPath = @”c:\example\result.zip”; string extractPath = @”c:\example\extract”; ZipFile.CreateFromDirectory(startPath, zipPath); ZipFile.ExtractToDirectory(zipPath, extractPath); 但是如果startPath是@”c:\example\start\myFile.txt;” ,它会抛出一个目录无效的错误。

无法找到中央目录结束记录

我正在使用c#程序下载一个zip文件,我收到错误 at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory() at System.IO.Compression.ZipArchive.Init(Stream stream, ZipArchiveMode mode, Boolean leaveOpen) at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding) at System.IO.Compression.ZipFile.Open(String archiveFileName, ZipArchiveMode mode, Encoding entryNameEncoding) at System.IO.Compression.ZipFile.ExtractToDirectory(String sourceArchiveFileN ame, String destinationDirectoryName, Encoding entryNameEncoding) at System.IO.Compression.ZipFile.ExtractToDirectory(String sourceArchiveFileN ame, String destinationDirectoryName) 这是程序 response = (HttpWebResponse)request.GetResponse(); Stream ReceiveStream = response.GetResponseStream(); byte[] buffer = new byte[1024]; FileStream outFile […]

安装.Net 4.5但不能在Visual C#中使用ZipFile类

我是Visual Studio编程的新手。 我最近将.Net 4.0升级到4.5以便在System.IO.Compression下使用ZipFile类,但是在安装完成后,Visual Studio(我使用2012)仍然无法将ZipFile识别为类名。 我确保.Net 4.5出现在控制面板程序列表中,而我的C#解决方案将.Net Framework 4设置为目标框架。 有人可以帮我解决这个问题吗?

如何将文件添加到现有zip存档

如何将一些文件(几乎总是单个.csv文件)添加到现有的zip文件中?

进度条不适用于zipfile? 当程序似乎挂起时如何提供反馈

我对C#和编码很新,所以其中一些可能是错误的方式。 我编写的程序按预期工作并压缩文件,但如果源代码很大,程序会出现(对Windows)挂起。 我觉得我应该使用Thread但我不确定这会有所帮助。 我会使用进度条但来自System.IO.Compression Ionic.Zip.ZipFile的’new’(。net 4.5)库取代了Ionic.Zip.ZipFile没有报告进度的方法? 有没有解决的办法? 我应该使用Thread吗? 还是DoWork ? 麻烦的是用户和系统没有得到关于程序正在做什么的反馈。 我不确定我是以正确的方式提出这个问题。 下面是正在运行的代码,但同样会出现挂起系统的问题。 private void beginBackup_Click(object sender, EventArgs e) { try { long timeTicks = DateTime.Now.Ticks; string zipName = “bak” + timeTicks + “.zip”; MessageBox.Show(“This Will take a bit, there is no status bar :(“); ZipFile.CreateFromDirectory(Properties.Settings.Default.source, Properties.Settings.Default.destination + “\\” + zipName); MessageBox.Show(“Done!”); this.Close(); } catch […]