C#从目录中读取文件夹(名称)

时间:2016-06-30 12:31:50

标签: c# visual-studio directory subdirectory folderbrowserdialog

我有这些代码:

        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,我在其中选择文件夹的路径。 在此选定的文件夹中有3个其他文件夹。我想读出这个文件夹的名字。我不想知道或读出一些文件。

谢谢你的支持。

2 个答案:

答案 0 :(得分:3)

您可以使用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();

答案 1 :(得分:2)

您需要使用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);
    }
}