2

尝试Directory.GetDirectories为映射的 Mac 目录调用函数时遇到问题。几周前(大约一年),该功能没有问题。将 Mac 升级到 OS X Mavericks 后,函数调用抛出异常:

指定的服务器无法执行请求的操作。

我可以从 Windows 资源管理器访问该目录而没有问题。任何想法为什么会发生这种情况?

这是片段:

if (Directory.Exists(rootDirectory))  // Success here...
{
    string[] dirs = Directory.GetDirectories(rootDirectory);  // Exception error here!!!
    ...
}

更新:我能够成功地在有问题的目录中的目录上调用“GetDirectories”函数。有问题的目录包含 758 个目录,其下的目录最多包含 ~20 个。我怀疑 758 个目录是否达到了最大数量,但谁知道呢?如果答案比这更明显,我希望不必尝试测试目录计数的上限,但我可能必须这样做来调试......

谢谢!

4

1 回答 1

3

你的 C# 代码很好。您可以尝试替换Directory.GetDirectoriesDirectory.EnumerateDirectories(MS 说 EnumerateDirectories 更有效),但我怀疑它会有所帮助。

问题出在 OSX 方面。在版本。10.9 他们用 SMB2 的损坏实现替换了 SMB1,目前仅支持文件夹中的 32 个文件/子文件夹。这是讨论

有一些解决方法可以从 OS X 访问 Windows 共享,但反之则不行。在苹果修复他们的 OSX 之前,我认为什么都做不了。

于 2013-11-04T17:34:05.930 回答