2013-04-06 22 views
6

Ich speichere die Dateien aus einer RAR/Zip-Datei in einem Ordner.
Danach speichere ich die Dateien in diesem Ordner in einer Datenbank.
Das Problem ist, speichert nur die Dateien im Ordner nicht die Unterverzeichnisse und seine Dateien.Suchen nach Unterverzeichnis in C#

So finden Sie, ob der Ordner Unterverzeichnisse enthält.
I unter

Directory.CreateDirectory(StorageRoot + path + New_folder); 
decom(StorageRoot + path + New_folder, StorageRoot + path + file.FileName); 
foreach (var access_file in Directory.GetFiles(StorageRoot + path + New_folder)) 
{      
    string new_name=System.IO.Path.GetFileName(access_file); 
    FileInfo f = new FileInfo(StorageRoot + path + New_folder+ "/" + new_name); 
    int new_size = unchecked((int)f.Length); 
    string new_path = path + New_folder; 
    statuses.Add(new FilesStatus(new_name, new_size, new_path, StorageRoot, data)); 
} 

den Code verwenden, wie die Liste der Dateien und Verzeichnisse in einem Ordner erhalten. und speichern sie in db?

Antwort

2

Um die Dateien und Verzeichnisse in einem Ordner erhalten Sie Directory.GetFiles() und Directory.GetDirectories()

Verwenden Rekursion oder Queue rekursiv Querungs Verzeichnisse verwenden können.

Beispiel mit Rekursion:

void Traverse(string directory) 
{ 
    foreach(var dir in Directories.GetDirectories(directory)) 
    { 
     Traverse(directory); 
    } 

    // Your code here 
} 
+0

Danke Typ wird dies versuchen. Geben Sie +1, aber ich bin jetzt weniger als 15 :) – Jhonny

+0

Mach dir keine Sorgen über + 1. Hoffe das hilft. –

+0

Sie brauchen keine Reputation zu akzeptieren und als richtig zu beantworten. –

2

Dies kann hilft:

System.IO.DirectoryInfo info = new System.IO.DirectoryInfo("YOUR PATH"); 

    //List of directories 
    var result = info.GetDirectories().Select(i => i.FullName); 

Sie können GetDirectories verwenden Unterordner Directory der und durchlaufen sie, bis Getdirectories kehrt nichts zu bekommen.