Visual C#Directory.GetDirectories问题 - “指定的服务器无法执行请求的操作”

时间:2013-11-04 16:35:44

标签: c# visual-studio-2010 macos osx-mavericks

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

  

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

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

以下是摘录:

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

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

谢谢!

1 个答案:

答案 0 :(得分:3)

您的C#代码没问题。您可以尝试将Directory.GetDirectories替换为Directory.EnumerateDirectories(MS说EnumerateDirectories效率更高),但我怀疑它会有所帮助。

问题出在OSX方面。在版本中10.9他们用SMB2的破坏实现取代了SMB1,SMB2目前只支持文件夹中的32个文件/子文件夹。 Here's the discussion

有从OS X访问Windows共享的解决方法,但反之亦然。我不认为在Apple修复他们的OSX之前一切都可以做。