0

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

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

调试时:

1:(好)

2:(好)

3:(好)

......

?:(这是 14 所在的位置)

?:(这里有 15 个)

......

?: ?

4

1 回答 1

1

如果您打算专门搜索特定项目或打算完全操纵目录,我不确定整个目标。我确实看到的一件事是您没有为您的数组指定任何额外的搜索。我相信这可能会通过深度嵌套或权限问题受到阻碍。

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

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

解决方案三:尝试以下代码;看看它是否解决了问题。

string root = Environment.GetFolderPath(Environment.SpecialFolder.Documents);
string[] subDir = Directories.GetDirectories(root, "*", SearchOption.AllDirectories);
foreach (string s in subDir)
{
     Console.WriteLine(s);
}

看看这是否返回了以前没有的正确信息。位于您的中的一些文件夹虽然被认为对用户公开,但它们仍处于锁定状态,因为它们位于用户配置文件中,因此权限将是一个很好的检查。

以管理员身份运行 Visual Studio 也有助于您进行故障排除。此外,您还应该查看是否有任何Inner Exceptions帮助识别它。

于 2013-06-03T17:10:00.890 回答