可能重複:
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