Tag: zip

ASP.NET将所有文件下载为Zip

我的网络服务器上有一个文件夹,里面有数百个mp3文件。 我想为用户提供从网页下载目录中每个mp3的压缩存档的选项。 我想只在需要时以编程方式压缩文件。 因为zip文件会非常大,所以我认为出于性能原因,我需要将zip文件发送到响应流, 因为它正在压缩 。 这可能吗? 我该怎么做?

.Net库用于分割卷zip文件?

我需要使用.Net创建跨区(多卷)zip文件,但我无法找到一个能够让我这样做的库。 跨区zip是一个zip压缩文件,分为多个文件,这些文件通常具有.z00,.z01等扩展名。 该库必须是开源的或免费的,因为我将把它用于开源项目。 (这是这个问题的重复,但那里没有答案,我也不打算使用ASP特定的)

使用DotNetZip在Zip文件上设置密码

我正在使用DotNetZip来压缩我的文件,但我需要在zip中设置密码。 我试过: public void Zip(string path, string outputPath) { using (ZipFile zip = new ZipFile()) { zip.AddDirectory(path); zip.Password = “password”; zip.Save(outputPath); } } 但输出zip没有密码。 参数path有一个例子的子文件夹: path = c:\path\和内部路径我有subfolder 怎么了?

如何将zip文件内容提取到.NET 4.5中的文件夹中

以下问题的答案似乎概述了如何使用System.IO.Commpression.ZipFile.ExtractToDirectory方法调用来提取文件。 在添加对System.IO.Compression的引用时,.NET 4.5中似乎不存在“ZipFile”。 如何从.NET 4.5中的* .zip文件中提取文件? 如何使用C#4.0从文件夹解压缩所有.Zip文件,而不使用任何OpenSource Dll? 这似乎显示了如何压缩文件。 但我正在寻找相反的方向。 在.NET 4.5中压缩文件 甚至这个问题在源代码中引用了“ZipFile”。 但我似乎无法找到这门课。 如何从C#.NET 4.5中的zip存档中提取特定目录? 编辑: 请注意7z.exe(来自7zip包)是如何工作的。 必须与.NET和7zip发生冲突。 ZipFile现在似乎工作正常。 private void extract_Click(object sender, EventArgs e) { string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location; exePath = @”C:\test”; // path during troubleshooting ////var cmd1 = “cd \”” + exePath + “\””; ////ExecuteCommand(cmd1, 100, exePath); //var cmd2 = “\”” + […]

解压缩抛出“无法正确加载基础压缩例程”

尝试使用以下代码在Win10移动(UWP)上解压缩文件 using (ZipArchive archive = new ZipArchive(stream, ZipArchiveMode.Read)) { ZipArchiveEntry entry = archive.Entries.First(); using (Stream reader = entry.Open()) { 在entry.Open()抛出以下错误。 “无法正确加载底层压缩例程。” 内在的例外 “无法加载DLL’clrcompression.dll’:找不到指定的模块。(HRESULTexception:0x8007007E)” 重要提示: entry.Open()在win10桌面上工作正常但在Win10移动版上没有工作,具有相同的项目(UWP) 使用Win10移动版10.0.14393.576。 (Lumia 650) UWP项目的目标版本是10.0 BUILD 14393 对桌面和移动版本使用相同的文件。 该文件在后端创建一个简单的文件 using (ZipArchive archive = new ZipArchive(stream, ZipArchiveMode.Create,true)) 我正在使用Xamarin表格(我不认为这是相关的) 问题:有人经历过同样的例外吗? 它的根本原因是什么? 有哪些可用的解决方法? (我需要文件压缩跨平台) 更新:我按要求创建了简单的测试项目(感谢您查看)。 解压缩在测试项目中工作,但它正在加载一个不同的模块。 Debug / Modules窗口指出exception抛出项目使用System.IO.Compression.dll 4.06.24705.1,工作项目使用1.00.24301.1。 我上传了两个project.lock.json文件以进行比较https://1drv.ms/f/s!AqROiejT4oI3lL1q1tu3iJcfA2tKyg 。

zip文件中的文件编码(C#/ ionic-zip)

我们在zip文件中编码文件时出现问题。 我们使用离子拉链来压缩和解压缩档案。 我们位于丹麦,因此我们经常在文件名中包含æ,ø或å的文件。 当用户使用Windows内置工具压缩文件时,我发现它使用了IBM437 enconding,当我们在其中包含’ø’/’Ø’的文件时,这只是给出了一些时髦的结果。 我修复了以下代码: public static string IBM437Encode(this string text) { return text.Replace(‘ø’, ‘¢’).Replace(‘Ø’, ‘¥’); } public static string IBM437Decode(this string text) { return text.Replace(‘¢’, ‘ø’).Replace(‘¥’, ‘Ø’); } 这已经运行了一段时间了,一切都很好。 但是,因为总是一个但是,我们没有尝试使用mac osx中的默认工具压缩的文件。 所以现在我们遇到了一个新问题。当使用æ,ø和å时,编码是UTF-8! 所以如果我知道压缩文件的位置,我可以让它工作,但有没有简单的方法来检测或规范化拉链内的编码?

在.NET 4.0中处理没有第三方库的Zip文件?

这里有类似的问题3.5: .NET 3.5中是否有内置的zip库? 推测4.0会有它,但我找不到任何关于它的信息。 如果没有,有谁知道为什么不呢? 似乎在包含支持的事物列表中会相当高。

在内存中从.CAB存档或InfoPath XSN文件中提取的最小C#代码

最近我一直在尝试实现一些从InfoPath XSN文件(.CAB存档)中提取文件的function。 在广泛搜索互联网之后,似乎没有本机.NET API。 所有当前的解决方案都围绕着大型库,即托管的C ++,它包含了Cabinet.dll。 遗憾的是,所有这些都违反了我的公司“没有第三方图书馆”的政策。 从2.0开始,.NET获得了一个名为UnmanagedFunctionPointer的属性,该属性允许使用__cdecl进行源级回调声明。 在此之前,__ stdcall是镇上唯一的节目,除非你不介意捏造IL,这种做法在这里也是非法的。 我立即知道这将允许为Cabinet.dll实现一个相当小的C#包装器,但我无法在任何地方找到一个示例。 有没有人知道使用本机代码执行此操作的方式比下面更清晰? 我当前的解决方案(执行非托管代码,但完全正常,在32/64位上测试): [StructLayout(LayoutKind.Sequential)] public class CabinetInfo //Cabinet API: “FDCABINETINFO” { public int cbCabinet; public short cFolders; public short cFiles; public short setID; public short iCabinet; public int fReserve; public int hasprev; public int hasnext; } public class CabExtract : IDisposable { //If any of […]

如何以编程方式将目录压缩为zip文件

我想压缩整个目录,该目录可以包含任意数量的子目录到一个ZIP文件中。 我能够以编程方式将单个文件压缩为zip文件。 为了压缩整个目录,我可以想到一个遍历每个子目录并对其进行压缩的递归程序。 但是有没有简单的方法使用类似的代码压缩整个文件夹,而不必编写任何递归函数?

使用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;” ,它会抛出一个目录无效的错误。