gpt4 book ai didi

c# - 如何解压子目录中存在的所有 .tar.bz2 并创建所有文件的列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:45 27 4
gpt4 key购买 nike

我正在尝试递归解析目录,在子目录中查找 .tar.bz2 文件,解压并创建 tar 文件中所有文件的列表,以下是详细信息,如何完成此操作?

path = \\location\tarballfiles\

假设以下 .tar.bz2 文件存在于上述位置的“路径”中

RA900B\hw.1\cqq-tech-fw-RA900B_hw_2-DATA.3.4-00028-S-1.tar.bz2  
CQQ9888\hw.2\cqq-tech-fw-CQQ9888_hw_2-DATA.3.4-00028-S-1.tar.bz2

……

预期输出:-

RA900B\hw.1\top.bin
RA900B\hw.1\mtp.bin
CQQ9888\hw.2\test.txt
CQQ9888\hw.2\data.txt
.......

伪代码:-

for each subfolder under path(ignore any files)
parse recursively to look for .tar.bz2 files
untar
create a list of all the files

最佳答案

要在目录中查找压缩包文件,您可以使用:

string[] files = Directory.GetFiles("\\\\location\\tarballfiles\\", "*.tar.bz2", SearchOption.AllDirectories);

然后递归文件,打开它们,解压然后将 tar 的文件添加到列表中。

示例(带有一些伪代码):

var allFiles = new List<string>();
string[] files = Directory.GetFiles("\\\\location\\tarballfiles\\", "*.tar.bz2", SearchOption.AllDirectories);
foreach (var file in files)
{
// untar
var filesFromTar = file.untar();

foreach (var fileNameFromTar in filesFromTar)
{
allFiles.Add(fileNameFromTar);
}
}

foreach (var allFile in allFiles)
{
Console.WriteLine(allFile);
}

关于c# - 如何解压子目录中存在的所有 .tar.bz2 并创建所有文件的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483653/

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