C# 从目录中读取文件夹(名称)
C# read folder (names) from directory
我有这个代码:
string directory;
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
directory = fbd.SelectedPath;
txtSource.Text = directory;
DirectoryInfo d = new DirectoryInfo(directory);
FileInfo[] Files = d.GetFiles();
List<String> str = new List<string>();
foreach (FileInfo file in Files)
{
str.Add(file.Name);
}
}
我有一个 FolderBrowseDialog
,其中我 select 文件夹的路径。
在这个 selected 文件夹中还有另外 3 个文件夹。我想读出这些文件夹的名称。我不想知道或读出文件名。
您需要使用 DirectoryInfo.GetDirectories。
using System;
using System.IO;
public class GetDirectoriesTest
{
public static void Main()
{
// Make a reference to a directory.
DirectoryInfo di = new DirectoryInfo("c:\");
// Get a reference to each directory in that directory.
DirectoryInfo[] diArr = di.GetDirectories();
// Display the names of the directories.
foreach (DirectoryInfo dri in diArr)
Console.WriteLine(dri.Name);
}
}
您可以使用 Directory.GetDirectories()
:
string[] subdirs = Directory.GetDirectories(fbd.SelectedPath);
这为您提供了子目录的完整路径。如果您只需要子文件夹的名称,而不需要完整路径,则可以使用 Path.GetFileName()
:
string[] subdirs = Directory.GetDirectories(fbd.SelectedPath)
.Select(Path.GetFileName)
.ToArray();
或者如果你想要两者:
var subdirs = Directory.GetDirectories(fbd.SelectedPath)
.Select(p => new {
Path = p,
Name = Path.GetFileName(p)})
.ToArray();
我有这个代码:
string directory;
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
directory = fbd.SelectedPath;
txtSource.Text = directory;
DirectoryInfo d = new DirectoryInfo(directory);
FileInfo[] Files = d.GetFiles();
List<String> str = new List<string>();
foreach (FileInfo file in Files)
{
str.Add(file.Name);
}
}
我有一个 FolderBrowseDialog
,其中我 select 文件夹的路径。
在这个 selected 文件夹中还有另外 3 个文件夹。我想读出这些文件夹的名称。我不想知道或读出文件名。
您需要使用 DirectoryInfo.GetDirectories。
using System;
using System.IO;
public class GetDirectoriesTest
{
public static void Main()
{
// Make a reference to a directory.
DirectoryInfo di = new DirectoryInfo("c:\");
// Get a reference to each directory in that directory.
DirectoryInfo[] diArr = di.GetDirectories();
// Display the names of the directories.
foreach (DirectoryInfo dri in diArr)
Console.WriteLine(dri.Name);
}
}
您可以使用 Directory.GetDirectories()
:
string[] subdirs = Directory.GetDirectories(fbd.SelectedPath);
这为您提供了子目录的完整路径。如果您只需要子文件夹的名称,而不需要完整路径,则可以使用 Path.GetFileName()
:
string[] subdirs = Directory.GetDirectories(fbd.SelectedPath)
.Select(Path.GetFileName)
.ToArray();
或者如果你想要两者:
var subdirs = Directory.GetDirectories(fbd.SelectedPath)
.Select(p => new {
Path = p,
Name = Path.GetFileName(p)})
.ToArray();