Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#NUnrar库(无密码提取受密码保护的rar文件)_C#_Rar_Winrar - Fatal编程技术网

C#NUnrar库(无密码提取受密码保护的rar文件)

C#NUnrar库(无密码提取受密码保护的rar文件),c#,rar,winrar,C#,Rar,Winrar,我正在使用C#中的这个库来提取RAR文件 即使文件受密码保护,它也能提取文件吗?它甚至不需要密码。这怎么可能 我正在使用WinRar创建RAR文件,并在其上输入密码。我是nunrar和 我正在对受密码保护的rar档案进行解密,这是我下一步要做的事情,因为我认为我已经这么做了(zip文件模糊了我的记忆) 正如另一条评论所说,我一直在寻求帮助,但希望我能尽快完成。(2018年底)。使用密码解包RAR(4或5格式)存档的解决方案: 安装Nuget包7z.Libs()和Squid-Box.SevenZ

我正在使用C#中的这个库来提取RAR文件

即使文件受密码保护,它也能提取文件吗?它甚至不需要密码。这怎么可能


我正在使用WinRar创建RAR文件,并在其上输入密码。

我是nunrar和

我正在对受密码保护的rar档案进行解密,这是我下一步要做的事情,因为我认为我已经这么做了(zip文件模糊了我的记忆)

正如另一条评论所说,我一直在寻求帮助,但希望我能尽快完成。

(2018年底)。使用密码解包RAR(4或5格式)存档的解决方案: 安装Nuget包7z.Libs()和Squid-Box.SevenZipSharp()。 使用此代码:(编辑:错误更正)


很明显,考虑到项目需要“加密等复杂项目”的帮助,它无法解密文件。对,我也看到了这样的评论:你绝对确定该文件受密码保护吗?@w0lf是的,我100%确定。奇怪的是,若你们只是对ZIP文件进行密码保护,那个么它就可以在不询问密码的情况下解压。但是如果你也在ZIP文件中加密文件名,那么它就不能解压。这是实现的吗?如果是的话,你能告诉我怎么做吗?非常感谢:-)如果添加了支持(请参阅我链接为dup的内容),请更新您的答案。SharpCompress(NUnrar继任者)支持解密rar文件
        public void Unpack()
        {
            var rawBytes = File.ReadAllBytes(".\\Some.rar");

            using (var stream = new MemoryStream(rawBytes, true))
            {
                // Toggle between the x86 and x64 bit dll
                var path = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, Environment.Is64BitProcess ? "x64" : "x86", "7z.dll");
                SevenZip.SevenZipBase.SetLibraryPath(path);

                using (var outMemStream = File.Create(".\\SomeSingleFile.txt"))
                {
                    var extractor = new SevenZipExtractor(stream, "passwordXXX");
                    var entry = extractor.ArchiveFileData.Single(info => false == info.IsDirectory);    
                    extractor.ExtractFile(entry.Index, outMemStream);                        
                }
            }
        }