我正在使用以下代码来确定是否可以使用 QFileInfo 写入特定目录:
QFileInfo dinfo(dirname);
if (dinfo.exists())
valid = dinfo.isWritable()
不幸的是,当我在 Vista 64 上传入当前用户桌面的路径时:
C:\Users\USERNAME\Desktop
QFileInfo::isWritable() 返回 false。但是,如果我将它传递给另一个目录(比如 C:\Temp),它会返回 true。我从 QFileInfo 对象请求目录权限,该对象为 5555(任何人都不可写)。此代码在包括 Windows XP 在内的其他平台上按预期工作。任何人都对这里可能发生的事情有任何想法。
作为参考,如果我删除检查,我实际上可以毫无问题地将文件保存到该位置。