我正在尝试递归解析目录,在子目录中查找 .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/