gpt4 book ai didi

c# - 带子目录的 Unrar 文件

转载 作者:行者123 更新时间:2023-12-02 22:25:06 26 4
gpt4 key购买 nike

我用过NUnrar提取我的文件:

NUnrar.Archive.RarArchive archive = NUnrar.Archive.RarArchive.Open(location + "1.rar");

foreach (RarArchiveEntry item in archive.Entries)
{
string path = Path.Combine(location, Path.GetFileName(item.FilePath));
item.WriteToFile(path);
}

如果我的文件没有任何子目录,一切正常,但如果 rar 文件有子目录,所有这些都被提取到同一个文件夹,我如何保持子目录和文件位置的模型

最佳答案

我不得不做一些实验来让 NUnrar 也能正常工作。或许我的小小成功可以帮到你。

RarArchive archive = RarArchive.Open(@"D:\Archives\Test.rar");
foreach (RarArchiveEntry entry in archive.Entries)
{
try
{
string fileName = Path.GetFileName(entry.FilePath);
string rootToFile = Path.GetFullPath(entry.FilePath).Replace(fileName, "");

if (!Directory.Exists(rootToFile))
{
Directory.CreateDirectory(rootToFile);
}

entry.WriteToFile(rootToFile + fileName, ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite);
}
catch (Exception ex)
{
//handle your exception here..
}
}

我已经在上面的代码中使用了 (Exception e),所以我不得不改用 (Exception ex)。它可能是草率的代码,可以进行整理 - 但尽管它已经很晚了,但我倾向于让它保持“有效”..

关于c# - 带子目录的 Unrar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com