UnauthorizedAccessException

UnauthorizedAccessException

我列出了 Nas 共享中的一些文件夹,获取文件夹属性并列出子文件夹。
对于我没有访问权限的文件夹,我得到两个不同的异常(exception)

  • System.UnauthorizedAccessException :拒绝访问路径“Z:\info”。
  • System.IO.IOException :未找到网络路径。

  • 第二个需要很长时间才能被捕获,这会减慢应用程序

    我的问题是为什么对于某些共享,我找不到网络路径而其他共享被拒绝?
    有什么不同?以及如何避免第二个需要时间的异常。

    最佳答案



    如果快速找到路径,但您没有权限,您将很快收到 UnauthorizedAccessException

    但是,如果系统试图发现网络共享是否有效,这可能需要一段时间。它需要进行相当多的网络访问,然后才能确定网络路径根本无效,这可能需要时间。



    唯一真正的方法是不访问不存在的共享。这并不总是实用 - 如果您需要在运行时确定它们是否存在,您只需要围绕这可能很慢的事实进行设计。

    但是,有很多方法可以改进这一点 - 如果您要检查多个共享,则可以并行执行这些检查。鉴于这确实是 IO 绑定(bind),线程可能会对应用程序的整体响应能力产生巨大影响,因为您可以同时检查所有共享,而不是按顺序检查。

    关于c# - UnauthorizedAccessException 与 IOException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15705880/

    10-11 02:19