2016-09-14 47 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

相關問題