C# 如何修复这个小的(可能很简单的)DirectoryInfo语法错误?

C# 如何修复这个小的(可能很简单的)DirectoryInfo语法错误?,c#,system.io.directory,C#,System.io.directory,非常直截了当。按一个按钮,从对话框中选择一个路径,搜索路径的子目录,并在messagebox中显示它们。但是遇到了一些问题 private void InputButton_Click(object sender, RoutedEventArgs e) { //CHECKS TO SEE IF "OK" WAS CLICKED IN DIALOGBOX if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

非常直截了当。按一个按钮,从对话框中选择一个路径,搜索路径的子目录,并在messagebox中显示它们。但是遇到了一些问题

private void InputButton_Click(object sender, RoutedEventArgs e)
{

    //CHECKS TO SEE IF "OK" WAS CLICKED IN DIALOGBOX
    if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {

    }

    //SELECTS DIRECTORY PATH
    Path.GetDirectoryName(fbd.SelectedPath);
    string path = Path.GetDirectoryName(fbd.SelectedPath);
    InputDirectory_Box.Text = path;

    //SELECTS SUBDIRECTORIES FROM PATH
    string[] subdirectories = DirectoryInfo.GetDirectories(path);
    for (int i = 0; subdirectories.Length+1 >= 0; i++)
    {
        MessageBox.Show(subdirectories[i]);
    }


}
string[]子目录=DirectoryInfo.GetDirectories(path)表示它需要非静态字段的对象引用。我已经声明了
path
,为它提供了要搜索的字符串。我对目录类(不是
DirectoryInfo
类)使用了完全相同的代码行和语法,这是合法的。但是,我在使用
Directory.GetDirectories
时遇到了一个问题。出于某种原因,它正在查找路径的父目录,而不是
子目录

如果有人能照点光:
A-为什么会出现此语法错误
B-为什么从路径返回父目录而不是子目录

那你就是英雄了。非常感谢

PS我对编程完全陌生,不知道什么是枚举/枚举,所以如果它与此有关,我希望能有一个小例子或它的上下文。

是一种实例方法。您需要有一个
DirectoryInfo
的实例才能使用它

string path = fbd.SelectedPath;

// Make a reference to a directory.
DirectoryInfo di = new DirectoryInfo(path);

// Get a reference to each directory in that directory.
string[] subdirectories = di.GetDirectories();

静态类将是

这两行中的第一行没用

Path.GetDirectoryName(fbd.SelectedPath);
string path = Path.GetDirectoryName(fbd.SelectedPath);
下一件事:我不明白这个循环。。。如果
长度+1>=0
,您希望实现什么? 要打印任何列表/数组的所有目录,您有两种选择:一种是
for
循环,如果您不需要项目索引,则更好的选择是
foreach
循环

看看这些例子:

   string[] subdirectories = Directory.GetDirectories(path);
    for (int i = 0; i < subdirectories.Length; i++)
    {
        MessageBox.Show(subdirectories[i]);
    }

   string[] subdirectories = Directory.GetDirectories(path);
    foreach (string directory in subdirectories)
    {
        MessageBox.Show(directory);
    }
string[]subdirectories=Directory.GetDirectories(path);
for(int i=0;i<子目录.Length;i++)
{
Show(子目录[i]);
}
string[]subdirectories=Directory.GetDirectories(路径);
foreach(子目录中的字符串目录)
{
MessageBox.Show(目录);
}

希望这能有所帮助。

在阅读时,我了解到可以使用长度为1的数组从头到尾进行反向索引。我认为长度+1将是数组的开始。代码的重写很有帮助,谢谢。然而,我也在试图弄清楚如何使用DirectoryInfo类。更具体地说,是DirectoryInfo.GetDirectories,它不同于Directories类。我想是其他人回答了这个问题。它需要实例化。
   string[] subdirectories = Directory.GetDirectories(path);
    for (int i = 0; i < subdirectories.Length; i++)
    {
        MessageBox.Show(subdirectories[i]);
    }

   string[] subdirectories = Directory.GetDirectories(path);
    foreach (string directory in subdirectories)
    {
        MessageBox.Show(directory);
    }