2

QT 新手提出的问题:当我为 QFileInfo 对象的 exists() 方法提供共享驱动器文件路径时,它总是返回 false,即使我用另一个反斜杠转义每个反斜杠(即 \\10.1.2.34.56 \dir1)。是的,该目录确实存在:) 这里是否存在其他问题,例如相关目录缺乏权限?预先感谢您对这个问题的任何启发......

4

2 回答 2

1

它似乎在 XP(使用 Qt 4.7.3)上可以正常工作,无论是双反斜杠还是单斜杠('//ip/share/filepath')。

尝试通过QFileDialog::getOpenFileName. 由于它使用本机对话框,因此如果需要,它应该询问您的登录名/密码。
如果QFileInfo可以找到该文件存在,您可以尝试使用本机 API(Windows 网络)连接或允许以编程方式访问网络共享。

于 2011-09-03T15:09:39.677 回答
0

事实证明,我的问题与权限有关,与转义反斜杠无关。

我继承的应用程序实际上有两个组件:i) 为应用程序提供 GUI 界面的窗口和 (ii) 执行实际工作的 Window 服务。该窗口能够“看到”共享驱动器,因为它运行的 Windows 用户 ID 拥有该驱动器的权限,而作为本地系统运行的 Windows 服务则不能。一旦我使用“服务”窗口将服务更改为在具有该驱动器权限的用户 ID 下运行,它就运行得很好。感谢您的答复...

于 2011-09-23T15:37:53.150 回答