Windows网络中用Qt QDir访问远程共享目录返回空列表求助
解决QDir访问Windows共享目录返回空列表的问题
QDir完全可以实现访问Windows共享目录的功能,你的问题出在路径转义错误上。
Windows的UNC共享路径格式是\\server\share,但在C++字符串中,反斜杠\是转义字符,所以每个实际的\都需要用另一个\来转义。你写的"\\service\\Documents"会被解析成\service\Documents——这是个无效的UNC路径,因为正确的UNC路径必须以两个反斜杠开头。
修正后的代码
把路径改成四个反斜杠开头的格式:
QFileInfoList fiList = QDir("\\\\service\\Documents").entryInfoList(QDir::Files); qDebug() << "sizeof filist: " << fiList.size(); for (const QFileInfo& fi : fiList) { qDebug() << fi.absoluteFilePath(); }
额外排查点
如果修正路径后还是不行,检查以下内容:
- 确认程序运行的账号有访问该共享目录的权限:资源管理器用当前登录用户访问,但如果程序是作为服务运行、或用其他账号启动,可能存在权限差异。
- 先用
QDir("\\\\service\\Documents").exists()判断路径是否存在,返回true再继续后续操作,方便快速定位问题。
内容的提问来源于stack exchange,提问作者k_k
相关产品推荐
相关产品推荐

