2016-09-14 16 views
2

我试图递归地解析一个目录,在子目录中查找.tar.bz2文件,解压并创建所有文件的列表tar文件里面的文件,下面是详细的信息,怎么做到这一点?如何解开目录中的所有.tar.bz2并创建所有文件的列表

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 
....... 

PSEUDO CODE: -

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

回答

1

要找到一个目录中的文件压缩包,你可以使用:

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

,然后递归的文件,打开它们,然后解压缩和焦油的文件添加到列表中。

例(有一些伪代码):

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); 
} 
+0

如何解压文件的指针? – user2125827

相关问题