【问题标题】:Unpack a rar file解压一个rar文件
【发布时间】:2013-08-29 23:33:26
【问题描述】:

好的,所以我搜索了允许我解压缩文件的 dll 文件,我找到了很多,例如 unrar.dll、chilkat、sharpcompress 等等,但我想使用 Rar 提供的那个自己。

所以我在我的项目中引用了 DLL 文件并导入了它。我使用的是 unrar.dll。

但我无法找到任何最新的代码来让我进行测试和尝试。我找到的所有示例要么不是最新的,要么不适用于 Vb.net。

我也尝试了官方的例子,它在安装中,但即使在我修复它之后也没有用,当我尝试使用代码时,我总是得到一个错误

object reference not set to an instance of an object

我只想将 rar 文件从特定位置解压缩到我的程序的根目录,所以如果我的程序在桌面上,我希望它解压缩我的文档中的文件并将文件解压缩到我的桌面。

【问题讨论】:

  • 您能否编辑您的问题以包含您尝试抛出您所询问的错误的代码?
  • 这是默认代码。在这里输入它会太长,但这里是官方 RAR 网站的链接,您可以从这里获得它:rarlab.com/rar_add.htm
  • 该站点不允许询问参考资料或库,而且您的编程问题过于宽泛。尝试将您的问题简化为我们可以帮助您解决的特定编程问题。

标签: vb.net unpack unrar


【解决方案1】:

如果您只想解压缩文件,我可以使用 SharpCompress 完成此操作

首先我创建了一个新的 VB.Net 应用程序并添加了对 SharpCompress.dll 的引用,然后使用此代码从 Rar 文件中提取所有文件。

'Imports 
Imports SharpCompress.Archives
Imports SharpCompress.Common

'Unrar code
Dim archive As IArchive = ArchiveFactory.Open("C:\file.rar")

For Each entry In archive.Entries
    If Not entry.IsDirectory Then
        Console.WriteLine(entry.Key)
        entry.WriteToDirectory("C:\unrar", New ExtractionOptions With  
                              {.ExtractFullPath = True, .Overwrite = True})
    End If
Next

More code samples

【讨论】:

  • 谢谢,这应该可以解决问题。我查看了该页面,但代码似乎已过时。我再看看。再次感谢,我明天试试。
【解决方案2】:

对于那些将在 vb.net 中尝试的人,提取选项被重命名并用作

Dim options As New ExtractionOptions With {
    .ExtractFullPath = True,
    .Overwrite = True
}
entry.WriteToDirectory(Application.StartupPath, options)

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 2012-03-16
    • 1970-01-01
    • 2021-01-15
    • 2015-06-23
    • 2010-10-07
    • 2020-01-15
    • 2011-12-26
    • 2013-05-12
    相关资源
    最近更新 更多