2011-09-02 89 views
1

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

回答

0

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

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

1

它似乎可以在XP(Qt 4.7.3)上正常工作,可以使用加倍的反斜杠或单斜杠('// ip/share/filepath' )。

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