C#,.getDirectory(字符串文件)在检索目录时出现问题

C#,.getDirectory(字符串文件)在检索目录时出现问题,c#,file,directory,C#,File,Directory,我试图检索我传入的路径的子目录。它处理它,并给我一半的子目录,但对于另一半,它在调试时返回一个“?”。我不知道是什么原因造成的 以下是我所拥有的: string root = @"C:\Users\Documents\Meta Consumer"; string[] subDir = Directory.GetDirectories(root); 调试时: 1:(好) 2:(好) 3:(好) ?:(这是14的位置) ?:(15在这里) ?:?如果您打算专门搜索某个特定项目或根本不打算操

我试图检索我传入的路径的子目录。它处理它,并给我一半的子目录,但对于另一半,它在调试时返回一个“?”。我不知道是什么原因造成的 以下是我所拥有的:

 string root = @"C:\Users\Documents\Meta Consumer";
 string[] subDir = Directory.GetDirectories(root);
调试时:

1:(好)

2:(好)

3:(好)

?:(这是14的位置)

?:(15在这里)


?:?

如果您打算专门搜索某个特定项目或根本不打算操作目录,我不确定整个目标。我看到的一件事是,您没有为数组指定任何额外的搜索。我相信,这可能会受到深层嵌套或许可问题的阻碍

解决方案一:确保您拥有在指定目录中执行递归搜索的有效权限

解决方案二:您可以尝试使用通配符搜索所有项目,然后强制它搜索所有目录。这可能有助于解决您可能遇到的潜在深层嵌套问题

解决方案三:尝试下面的代码;看看它是否解决了这个问题

string root = Environment.GetFolderPath(Environment.SpecialFolder.Documents);
string[] subDir = Directories.GetDirectories(root, "*", SearchOption.AllDirectories);
foreach (string s in subDir)
{
     Console.WriteLine(s);
}
看看它是否返回了以前没有的正确信息。您的库中有一些文件夹虽然被认为对用户是公共的,但由于它们位于用户配置文件中,因此仍然被锁定,因此权限将是一个很好的检查方法


以管理员身份运行VisualStudio也将有助于排除故障。此外,您还应该查看是否存在任何
内部异常
,以帮助识别它。

看起来像一个实例,您可以添加一个搜索参数并指定
AllDirectories
TopLevelDirectory
如下所示:
string[]subDir=Directory.GetDirectories(root,“**”,SearchOption.AllDirectories)
然后实际编写一个
foreach循环
来返回这些值。我运行您的确切代码,并从我的
Users\Documents\somepathwithsubfolders
中提取,它工作正常。。也许您需要在管理模式下运行VisualStudio