可能重复:
How to recursively list all the files in a directory in C#?递归列出给定路径下的所有文件和文件夹?
我想列出文件和文件夹的给文件夹(路径)
的“子路径”让我们说我有文件夹C:\ files \ folder1 \ subfolder1 \ file.txt
如果我给函数c:\ files \ folder1 \
我会得到 subfolder1 subfolder1 \ file.txt的
可能重复:
How to recursively list all the files in a directory in C#?递归列出给定路径下的所有文件和文件夹?
我想列出文件和文件夹的给文件夹(路径)
的“子路径”让我们说我有文件夹C:\ files \ folder1 \ subfolder1 \ file.txt
如果我给函数c:\ files \ folder1 \
我会得到 subfolder1 subfolder1 \ file.txt的
尝试这样:
static void Main(string[] args)
{
DirSearch(@"c:\temp");
Console.ReadKey();
}
static void DirSearch(string dir)
{
try
{
foreach (string f in Directory.GetFiles(dir))
Console.WriteLine(f);
foreach (string d in Directory.GetDirectories(dir))
{
Console.WriteLine(d);
DirSearch(d);
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
可以使用Directory.GetFiles
方法列出文件夹中的所有文件:
string[] files = Directory.GetFiles(@"c:\files\folder1\",
"*.*",
SearchOption.AllDirectories);
foreach (var file in files)
{
Console.WriteLine(file);
}
注SearchOption
参数可用于控制搜索是否递归(SearchOption.AllDirectories
)或不(SearchOption.TopDirectoryOnly
)。
String[] subDirectories;
String[] subFiles;
subDirectories = System.IO.Directory.GetDirectories("your path here");
subFiles = System.IO.Directory.GetFiles("your path here");
真的很容易,它很有趣。但为了只获取名称 - foreach(子目录中的字符串str) Console.WriteLine(str.Split('\\')。Last()); foreach(String str in subFiles) Console.WriteLine(str.Split('\\')。Last()); – sapatelbaps 2013-11-26 17:51:39
我记得不久以前解决类似的问题,SO,尽管它是在VB。这是question。
您已经检查了FileInfo和DirectoryInfo提供的API吗?实现你想要的行为对于这些类来说相当简单... – 2010-09-14 15:59:30