Tag: 存档

C#SharpZipLib剥离不相关的目录名称

我正在使用SharpZipLib压缩包含子目录的文件夹,这很正常。 我想做的是剥离第一个子文件的父目录,以便不进行整个无关的结构…… 例: C:\ A \ B \ C \ d。\ E \˚F\克\ħ\ FILE1.TXT C:\ A \ B \ C \ d。\ E \˚F\克\ħ\ FILE2.TXT C:\ A \ B \ C \ d。\ E \˚F\克\ħ\ I \ FILE1.TXT C:\ A \ B \ C \ d。\ E \˚F\克\ħ\ I \ FILE2.TXT 它应该像这样结束: FILE1.TXT FILE2.TXT I […]

使用ExtractToDirectory方法解压缩会扭曲非拉丁符号

我有几个文件夹,一些文件夹的名称中包含非拉丁符号(在我的情况下是俄语)。 此文件夹正在“D:\ test.zip”中发送到zip存档(由Windows资源管理器)。 然后我执行方法 ZipFile.ExtractToDirectory(@”D:\test.zip”, @”D:\result”); 它成功地解压缩了所有内容,但所有非拉丁符号都变成了错误。 例如,我得到了“D:\ result \ЄбЄ¤л\ file.txt”而不是“D:\ result \ каскады\ file.txt” 。 我的系统的默认编码是windows-1251 ,我通过将Encoding.GetEncoding(“windows-1251″)纳入ExtractToDirectory第三个参数并获得相同的结果来validation。 我也试过UTF-8 ,但在路径中有另外的文物( “D:\ result \ ᪠ \ file.txt” )。 尝试使用Unicode返回有关不支持编码的消息。 当我通过执行方法通过代码创建相同的存档时 ZipFile.CreateFromDirectory(@”D:\zipdata”, @”D:\test.zip”); 然后,即使没有指定特定的编码,也可以使用与问题顶部相同的代码行解压缩。 问题是:如何从存档中获取正确的编码以便在ExtractToDirectory方法中应用它,因为在实际任务存档中来自外部源并且我不能依赖于它“通过手”或编程创建的位置? 编辑 有问题 ,非拉丁符号(中文)也会引起问题,但这个事实就像解决问题一样,而这对我的情况来说确实是个问题。

如何通过使用C#.NET 4.5将文件从ZIP存档读取到内存而不将其首先解压缩到文件中?

.NET Framework 4.5通过System.IO.Compression类添加了对ZIP文件的支持。 假设我的.ZIP存档在根目录中有sample.xml文件。 我想直接从存档到内存流读取此文件,然后将其反序列化为自定义.NET对象。 做这个的最好方式是什么?