2016-04-01 24 views
0

Hallo Ich möchte eine Zip-Datei extrahieren, die verschiedene Textdateien enthält. Aber ich könnte sein, dass de Textdateien in einem Ordner sind. Also, was ich tun möchte, ist: Wenn ein Ordner vorhanden ist, nur normal exportieren, wenn nicht einen Ordner mit dem Namen von ZipFile erstellen. Der Grund ist, dass ich keinen Ordner in einem Ordner mit demselben Namen haben möchte.Zip-Datei Inhalt prüfen und extrahieren

Mein zurück Code:

foreach (string file in newZips) { 

     FileInfo fileInfo = new FileInfo(file); 
     string dirName = newPath + "\\" + fileInfo.Name.Substring(0, fileInfo.Name.Length - 4); 
     Console.WriteLine(dirName); 
     Directory.CreateDirectory(dirName); 
     ZipFile.ExtractToDirectory(allZipsPath + "\\" + fileInfo.Name, dirName); 
    } 
+0

Und was ist Ihre Frage? –

+0

Wenn die Zip-Datei einen Ordner mit Textdateien enthält, entpacken Sie sie normalerweise. Wenn die Zip-Datei No-Ordner enthält, sondern nur die Textdateien, entpacken Sie sie und erstellen Sie einen Ordner, der wie die Zip-Datei aufgerufen wird. – Ams1

Antwort

0

Vielleicht hilft Ihnen:

string path = @"C:\..\..\myFolder"; 
if(!Directory.Exists(path)) 
{ 
    Directory.CreateDirectory(path); 
} 

Das ist, wie Sie einen Pfad überprüfen können, ob sie den Ordner enthält, die Sie erwarten. Und wenn nicht, erstellt er diesen Ordner!

--- EDIT (wenn unbekannt Zip-Name) ---

string myPathToZip = @"C:\..\..\folderName"; 
foreach (string file in Directory.GetFiles(myPathToZip, "*.zip", SearchOption.AllDirectories)) 
{ 
    //the current path of the zipFile (with the Name included) 
    var path = new FileInfo(file.ToString()); 

    //The filename 
    var filename = Path.GetFileName(file.ToString()).Replace(".zip", ""); 
} 
+0

ist dies für zipFile möglich? – Ams1

+0

of Kurs ... string myZip = @ "C: \ ... \ ... \ myZip.zip"; ist auch möglich. Die Verzeichnisklasse von C# ist ziemlich mächtig. –

+0

@ Ams1: Bitte akzeptieren Sie die Antwort, wenn es Ihnen geholfen hat. –