2013-04-06 38 views
6

我将从rar/zip文件中提取的文件存储在一个文件夹中。
之后,我将该文件夹内的文件存储到数据库。
问题是它只存储文件夹中的文件而不是子目录及其文件检查C#中的子目录

如何查找文件夹是否有任何子目录。
我使用下面

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

代码如何获得一个文件夹中的文件和目录的列表。并保存在数据库中?

回答

2

为了得到一个文件夹,你可以使用Directory.GetFiles()和Directory.GetDirectories()

使用递归或队列递归遍历目录中的文件和目录。

示例使用递归:

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

    // Your code here 
} 
+0

谢谢兄弟会试试这个。将给+1,但我现在少于15 :) – Jhonny 2013-04-06 11:23:46

+0

不要担心+1。希望这可以帮助。 – 2013-04-06 11:30:06

+0

你不需要任何声望来接受和回答正确。 – 2013-04-16 09:32:21

2

这可能帮助:

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

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

您可以使用GetDirectories获得子文件夹的DirectoryInfo的,并通过他们,直到Getdirectories返回任何迭代。