der*_*uth 92 c# directory getdirectories subdirectory
我想列出该目录的目录和子目录中包含的每个文件和目录.如果我选择C:\作为目录,程序将获得它有权访问的硬盘驱动器上的每个文件和文件夹的每个名称.
列表可能看起来像
fd\1.txt fd\2.txt fd\a\ fd\b\ fd\a\1.txt fd\a\2.txt fd\a\a\ fd\a\b\ fd\b\1.txt fd\b\2.txt fd\b\a fd\b\b fd\a\a\1.txt fd\a\a\a\ fd\a\b\1.txt fd\a\b\a fd\b\a\1.txt fd\b\a\a\ fd\b\b\1.txt fd\b\b\a
Rus*_* F. 168
string[] allfiles = Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)
*.*模式在哪里匹配文件
如果还需要目录,您可以这样:
foreach (var file in allfiles){
FileInfo info = new FileInfo(file);
// Do something with the Folder or just add them to a list via nameoflist.add();
}
Run Code Online (Sandbox Code Playgroud)
Ala*_*Maw 45
Directory.GetFileSystemEntries存在于.NET 4.0+中并返回文件和目录.这样称呼它:
string[] entries = Directory.GetFileSystemEntries(path, "*", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)
请注意,它无法处理列出您无权访问的子目录(UnauthorizedAccessException)的内容的尝试,但它可能足以满足您的需求.
小智 9
public static void DirectorySearch(string dir)
{
try
{
foreach (string f in Directory.GetFiles(dir))
{
Console.WriteLine(Path.GetFileName(f));
}
foreach (string d in Directory.GetDirectories(dir))
{
Console.WriteLine(Path.GetFileName(d));
DirectorySearch(d);
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)