QFile系统条目信息不返回完整的目录名称
QFileSystem entryInfo not returning full directories name
所以我的 iTunes 资料库中有一些重复的歌曲(准确地说是 844),所以我想我会写一个小程序来查找和销毁重复的歌曲。我遇到的问题是某些目录未正确读取。
例如,专辑的文件夹名称之一是"Greatest Hits, Vol. 2",但读作"Greatest Hits, Vol"
显然,"."导致了问题。有谁知道允许我读取完整文件路径名(带句点)的解决方法?
代码的小截图。
QString name;
int id;
for (int a = 0; a < dir.entryList(QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot).length(); ++a)
{
name = path() + "/" + baseName() + "/" + dir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot).at(a);
subFiles.append(new CKClone(id, path() + "/" + baseName() + "/" + dir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot).at(a), this));
// Updating the ID number to account for descendants.
id = subFiles.last()->countDescendants(id);
}
上面的代码只是一个小截图,显然不会自己做一大堆。它只是递归地读取所有文件和目录。
任何帮助将不胜感激,谢谢
杰克
我实际上在 PyQt 中对此进行了测试,发现问题对我来说没有发生。这是使用 Qt 4.8 测试的,因此您可能需要检查它是否是特定于您的版本的问题。
目录结构如下:
testing/
a path with spaces/
patH_with_no_spaces/
path with version, vol. 2/
测试代码段
from PyQt4 import QtCore
d = QtCore.QDir("testing")
list(d.entryList(d.AllEntries|d.NoDotAndDotDot))
# output
[
PyQt4.QtCore.QString(u'a path with spaces'),
PyQt4.QtCore.QString(u'path with version, vol. 2'),
PyQt4.QtCore.QString(u'patH_with_no_spaces')
]
您可能希望首先尝试进一步简化代码,以查看它是否是代码中的错误。您似乎每次循环、构建字符串和追加时都会重新生成列表。尝试在循环之前保存该entryList
调用的 QStringList 结果一次,并对其余代码使用相同的对象。
相关文章:
- 系统参数信息A 与 SPI_GETMOUSE 返回 0
- 为什么系统函数总是在C++中返回已转移的退出状态?
- 进程退出,返回值3221226356写入系统( "cls" )。(已解决)
- 返回混合 \ 和 / 的文件系统路径字符串方法
- 将 OpenGL 坐标系统转换为自定义并返回
- 系统("暂停")返回EXIT_SUCCESS和返回 0 之间的区别
- 英特尔 Pin:如何获取系统调用的返回地址
- 挂钩VirtualAlloc在系统DLL调用时返回NULLPTR
- 如何测试仅返回系统值的API
- 当功能返回时,Linux C 系统()调用崩溃
- QString在相同的汇编(但不同的系统)上返回不同的刺痛
- 系统:: DateTime返回1/1/1 00:00:00的值
- C++:如何运行一个系统命令N次(异步)并返回N次执行时间
- 哪种方式将 HHOOK 消息返回到系统更好
- 为什么 'boost::文件系统::exists' 当文件确实存在时返回 false
- 谁需要释放返回char*的系统调用的内存
- 本机 WMI 提供程序中的 UINT64 不返回某些系统上的数据
- setxkbmap 从系统调用执行时返回 65280
- ccomptr _appdomain 创建实例返回系统找不到指定的文件
- QFile系统条目信息不返回完整的目录名称