2010-08-09 80 views
0

假设我的路径是"c:/myapp/mainfolder/" 主文件夹中包含三个文件夹。 顺便说一句,它不需要识别主文件夹下的单独文件。如何检测给定主文件夹下的所有子文件夹?

c:/myapp/mainfolder/subfolder1/ 
c:/myapp/mainfolder/subfolder2/ 
c:/myapp/mainfolder/subfolder3/ 

我怎么能输入c:/myapp/mainfoder/ 和得到的输出:采用string[] subArrFolders = {subfolder1, subfolder2, subfolder3}

C#2.0。

谢谢。

+1

说明:你只想要子文件夹的名称,还是完整的目录路径? – 2010-08-09 02:28:20

+0

当然,我只想要子文件夹名称。 – 2010-08-16 09:12:29

回答

2

您可以使用Directory.GetDireatories()来获取已知路径的子目录。您可以使用它像这样:

string MyPath = "c:\\myapp\\mainfolder\\"; 
string[] subArrFolders = IO.Directory.GetDiretories(MyPath); 
+0

但他要求提供子文件夹名称,而不是完整的路径名称。这个答案给你: C:\ myapp \ mainfolder \ subfolder1 C:\ myapp \ mainfolder \ subfolder2 C:\ myapp \ mainfolder \ subfolder3 – 2010-08-09 02:22:47

+0

很明显,虽然原来的海报标记为已接受,但我猜想它足够好。如果您需要有关子目录的更多元数据,而不仅仅是它们的路径,则可以使用DirectoryInfo(请参阅MSDN)类。 – Kibbee 2010-08-09 23:08:16

+0

是的,我将Kibbee的输入和'DirectoryInfo'结合在我的项目中。 – 2010-08-16 09:11:26

1

由于缺乏这样的回答假设他要求的子文件夹名称,而不是完整的路径名,这是什么,这将使你更好的信息:

这将让您提取叶文件夹名称:

using System; 
using System.Text; 
using System.IO; 

namespace StackOverflow_NET 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      String path = @"C:\myapp\mainfolder"; 
      DirectoryInfo info = new DirectoryInfo(path); 
      DirectoryInfo [] sub_directories = info.GetDirectories("*",SearchOption.AllDirectories); 

      foreach (DirectoryInfo dir in sub_directories) 
      { 
       Console.WriteLine(dir.Name); 
      } 
     } 
    } 
} 

输出:

subfolder1 
subfolder2 
subfolder3 

的各色关键这里是DirectoryInfo类允许你通过Name属性获取叶子目录名。

+0

@C约翰逊,非常感谢您的意见。 – 2010-08-16 09:12:57

相关问题