Tag: 7zip

如何在C#中使用SevenZipSharp / Unrar知道哪个rar在多rar档案中是第一个?

我试图在C#WinForms .NET 3.5中使用SevenZipSharp或/和Unrar库。 我有多个rar档案有这个问题,例如有不同的命名: .rar,r01,r02,r03等(这很容易) somefile01.rar,somefile02.rar,somefile03.rar .001,.002,003等。 如果我将Unrar或SevenZipSharp指向错误的存档,它将解压缩该特定存档并将其余部分解压缩。 所以我必须指出正确的一个(除非我做错了什么)。 检查的最佳方法是什么? 现在我正在检查目录中是否有多个.rar文件然后如果是这样我检查01.rar。 如果只有一个和.rar和几个r01然后我得到.rar但这似乎有点不对。 有没有办法让SevenZip或Unrar通过指向任何.rar文件实际解压整个多rar包? 或.001? 疯狂的男孩 编辑: 我尝试使用以下代码来获取一个答案中建议的信息,但它无法提供承诺的信息。 extr.ArchiveFileData为zip返回0,为任何提供的rar返回32,无论是rar还是r01。 using (SevenZipExtractor extr = new SevenZipExtractor(fileName)) { foreach (var var in extr.ArchiveProperties) { string attributes = var.Name; object test = var.Value; if (test == null) { test = “THIS”; } MessageBox.Show(attributes.ToString(), test.ToString()); } foreach (var var in […]

使用7zip sdk压缩文件,但存档文件不是原始文件,无法使用unrar解压缩

我正在使用7zip sdk(http://www.7-zip.org/sdk.html)来压缩文件。 它使用这个包装工作正常: public void EncodeSingleFile(FileStream inStream, FileStream outStream) { bool eos = false; Int32 dictionary = 1 << 21; Int32 posStateBits = 2; Int32 litContextBits = 3; // for normal files // UInt32 litContextBits = 0; // for 32-bit data Int32 litPosBits = 0; // UInt32 litPosBits = 2; // for 32-bit data Int32 […]

7z命令行来压缩文件夹

我正在尝试使用7zG.exe的命令行压缩/ 7z文件夹。 我的代码适用于文件,但不适用于文件夹。 有人可以用7z命令行来压缩文件夹,告诉我正确的方法吗? 以下是仅适用于文件的示例代码。 每当我尝试运行此代码时,7zip会显示一个消息框,说“参数无效” string sourceName = “Folder\Folder1”; string targetName = “Example.gz”; // 1 // Initialize process information. // ProcessStartInfo p = new ProcessStartInfo(); p.FileName = “7zG.exe”; // 2 // Use 7-zip // specify a=archive and -tgzip=gzip // and then target file in quotes followed by source file in quotes // p.Arguments = […]

使用7zip压缩文件的示例C#.net代码

我在C:\ Program文件的机器上安装了7-zip 4.65。 我想在C#代码中使用它来压缩文件。 文件名将由用户动态提供。 任何人都可以提供一个如何在C#代码中使用7zip的示例代码吗?

7zip压缩网络流

我想在通过网络发送之前压缩文件。 我认为最好的方法是7zip,因为它是免费和开源的。 我如何使用7zip与.net? 我知道7zip是免费的,并且他们在c#中有源代码但由于某种原因它在c#上非常慢,所以我宁愿调用因性能原因安装7zip时出现的dll 7z.dll 。 所以我能够在7z.dll中编组和调用方法的7z.dll是在名为sevenzipsharp的库的帮助下。 例如,将dll添加到我的项目中将使我能够: // if you installed 7zip 64bit version then make sure you change plataform target // like on the picture I showed above! SevenZip.SevenZipCompressor.SetLibraryPath(@”C:\Program Files\7-Zip\7z.dll”); var stream = System.IO.File.OpenRead(@”SomeFileToCompress.txt”); var outputStream = System.IO.File.Create(“Output.7z”); SevenZip.SevenZipCompressor compressor = new SevenZip.SevenZipCompressor(); compressor.CompressionMethod = SevenZip.CompressionMethod.Lzma2; compressor.CompressionLevel = SevenZip.CompressionLevel.Ultra; compressor.CompressStream(stream, outputStream); 这就是我在c#中使用7zip的方式。 现在我的问题是: […]

使用7z.exe在c#中解压缩文件

我正在尝试从winform应用程序解压缩文件。 我正在使用此代码: string dezarhiverPath = @AppDomain.CurrentDomain.BaseDirectory + “\\7z.exe”; ProcessStartInfo pro = new ProcessStartInfo(); pro.WindowStyle = ProcessWindowStyle.Hidden; pro.FileName = dezarhiverPath; pro.Arguments = @” ec:\TEST.ZIP”; Process x = Process.Start(pro); x.WaitForExit(); 代码不会返回错误但不会返回任何错误。 我也从cmd尝试过这个命令: K:\>”C:\Test\7z.exe” e “c:\TEST.ZIP” 但在cmd中,我收到此错误消息: 7-Zip cannot find the code that works with archives. 有人可以帮我从c#解压缩一些文件吗? 谢谢!

如何将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 = “\”” + […]

用C#代码提取7zip

我需要在C#中使用7zip。 没有控制台,只有7zSharp.dll? +我在这里找到一些数据 http://7zsharp.codeplex.com/releases/view/10305 , 但我不知道如何使用它( – 我可以创建.bat(.cmd)文件,但我需要通过dll文件)正好:我需要提取.7z文件与键)

支持7zip(LZMA)的C#免费压缩库

我有一个程序(用C#编写)直接读取/写入数据(没有服务器的直接文件访问)到firebird数据库文件。 为了更好的交换,我希望(un)在导入/导出时压缩它们,以便通过互联网进行更好的交换,而无需外部程序(un)压缩它们。 我知道#ziplib支持Zip,GZip,Tar和BZip2。 你知道C#的其他免费压缩库吗? 是否有支持LZMA的.NET库,因此我可以读/写“.7z”文件?

如何使用7z SDK压缩和解压缩文件

根据此链接如何使用.NET创建7-Zip压缩文件? ,WOPR告诉我们如何使用7z SDK( http://www.7-zip.org/sdk.html )使用LMZA(7z压缩算法)压缩文件 using SevenZip.Compression.LZMA; private static void CompressFileLZMA(string inFile, string outFile) { SevenZip.Compression.LZMA.Encoder coder = new SevenZip.Compression.LZMA.Encoder(); using (FileStream input = new FileStream(inFile, FileMode.Open)) { using (FileStream output = new FileStream(outFile, FileMode.Create)) { coder.Code(input, output, -1, -1, null); output.Flush(); } } } 但是如何解压呢? 我试试: private static void DecompressFileLZMA(string inFile, string outFile) { […]