Gra*_*ICA 123
使用Directory.GetDirectories获得由指定的目录的子目录"your_directory_path".结果是一个字符串数组.
var directories = Directory.GetDirectories("your_directory_path");
Run Code Online (Sandbox Code Playgroud)
默认情况下,它只返回一级深度的子目录.有一些选项可以递归返回并过滤结果,在此处记录,并在Clive的答案中显示.
避免UnauthorizedAccessException
UnauthorizedAccessException如果你点击了一个你无法访问的目录,你很可能会得到一个.
您可能必须创建自己的方法来处理异常,如下所示:
public class CustomSearcher
{
public static List<string> GetDirectories(string path, string searchPattern = "*",
SearchOption searchOption = SearchOption.AllDirectories)
{
if (searchOption == SearchOption.TopDirectoryOnly)
return Directory.GetDirectories(path, searchPattern).ToList();
var directories = new List<string>(GetDirectories(path, searchPattern));
for (var i = 0; i < directories.Count; i++)
directories.AddRange(GetDirectories(directories[i], searchPattern));
return directories;
}
private static List<string> GetDirectories(string path, string searchPattern)
{
try
{
return Directory.GetDirectories(path, searchPattern).ToList();
}
catch (UnauthorizedAccessException)
{
return new List<string>();
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样调用它:
var directories = CustomSearcher.GetDirectories("your_directory_path");
Run Code Online (Sandbox Code Playgroud)
Cli*_*ive 50
这很容易:
string[] folders = System.IO.Directory.GetDirectories(@"C:\My Sample Path\","*", System.IO.SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)
小智 6
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string[] files = Directory.GetFiles(fbd.SelectedPath);
string[] dirs = Directory.GetDirectories(fbd.SelectedPath);
foreach (string item2 in dirs)
{
FileInfo f = new FileInfo(item2);
listBox1.Items.Add(f.Name);
}
foreach (string item in files)
{
FileInfo f = new FileInfo(item);
listBox1.Items.Add(f.Name);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TRIAL
{
public class Class1
{
static void Main(string[] args)
{
string[] fileArray = Directory.GetDirectories("YOUR PATH");
for (int i = 0; i < fileArray.Length; i++)
{
Console.WriteLine(fileArray[i]);
}
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
159771 次 |
| 最近记录: |