温馨提示:本文翻译自stackoverflow.com,查看原文请点击:windows - Delphi SelectDirectory strange behaviour with network drive
delphi windows

windows - Delphi SelectDirectory网络驱动器的异常行为

发布于 2020-04-14 15:10:16

我有一个客户的错误报告。我的程序使用Delphi选择目录功能允许他选择该程序使用的一些目录,这些目录都可以放在网络驱动器上。以下是错误报告的相关摘录:

尝试更改目录时,对话框中未显示网络驱动器。在浏览菜单中打开“计算机”时,仅显示本地驱动器。回旋解决方案是使对话框保持打开状态,断开网络驱动器的连接,然后重新连接网络驱动器。然后它将出现在对话框中。更改下一个文件夹位置时,必须重新进行一次。我发现主要技术人员经常执行此操作,因为它似乎已重置。

最初,我认为这一定是Windows无法选择目录,所以我请他检查两台计算机(客户端和装有网络驱动器的计算机)上的网络位置是否设置为“工作”,并检查驱动器是否处于正常运行状态。映射到客户端上,以检查是否已打开网络发现,并检查他是否可以在Explorer中看到驱动器正常。他做到了,但错误仍然存​​在。

我还没有在Google或QC报告中找到与此相关的任何内容,SelectDirExtOpts 文档似乎表明网络驱动器应该“正常工作”。

所以我的问题是:有人遇到过类似的东西吗?它可能是Windows问题,还是Delphi?

非常感谢。

查看更多

提问者
David Orpen
被浏览
86
Marjan Venema 2012-11-15 15:19

只要包含该sdShowShares标志,它就应该确实可以工作。

如果您看一下SelectDirectory函数的源代码,您会发现它不仅仅只是为进行设置SHBrowseForFolder和读取结果而已

SHBrowseForFolder 是Windows Shell API函数:

function SHBrowseForFolder; external shell32 name 'SHBrowseForFolderW';

SHBrowseForFolder由于重新连接驱动器后,正确显示了驱动器,因此Delphi必须正确解释从驱动器获得的结果因此,我想说这是客户端计算机上的Windows问题。