代码之家  ›  专栏  ›  技术社区  ›  Vinko Vrsalovic

FolderBrowserDialog需要花费很长时间才能列出位于USB驱动器中的文件夹的子文件夹

  •  0
  • Vinko Vrsalovic  · 技术社区  · 15 年前

    在USB驱动器中使用FolderBrowserDialog需要几分钟才能提供子文件夹(与子文件夹的数量无关)。而windows资源管理器确实以相对快速的方式显示它们。

    我使用的代码是:

    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) {
      //grab value
    }
    

    我导航到USB驱动器,然后单击根目录中的一个文件夹以等待大量时间。

    这是Windows Server 2003 x64上的.NET 2.0 SP1(32位可执行文件)

    有什么已知的原因吗?为什么要比Windows资源管理器花费这么长时间?

    一个粗略的谷歌搜索似乎表明我是孤独的。我发现它在64位系统上崩溃了,但实际上我没有崩溃,如果我等了几分钟它就会工作。

    2 回复  |  直到 14 年前
        1
  •  0
  •   CrazyChris    15 年前

    你试过调试Windows资源管理器吗?在打开子文件夹时,他正在引用系统调用吗?对你的申请也一样吗?要么系统调用有差异,要么正在做更多的事情。或者最后一次失败了很多次,只有几次成功了。

        2
  •  0
  •   DaveE    14 年前

    你连接的USB端口是什么版本的?1.0/1.1比2.0需要更长的响应时间。另外,如果您有一个windows版本,它在后台为连接的设备编制索引,那么您在资源管理器中单击它时,它可能已经被编入索引;可以说,您的功能是“实时和亲自”执行它。