Qt4 - QDir::entryList() 不返回编码无效的文件/目录
我的基于 Qt4 的应用程序 (http://qcomicbook.linux-projects.net) 在打开位于无效编码(很可能是 koi-8 编码或其他亚洲编码)的目录中的文件时出现问题。问题出现在以下代码中:
QDir dir(path);
dir.setSorting(flags);
dir.setFilter(QDir::AllDirs|QDir::Files);
const QStringList files = dir.entryList();
foreach (QString f, files) {
...
}
如果路径包含具有无效编码的目录/文件,则 dir.entryList() 只是将其过滤掉。 QFileDialog::getExistingDirectory 对话框也表明了该问题,该对话框沿文件目录名称显示“无效编码”警告。
是否有任何解决方法,最好对最终用户透明?
My Qt4-based application (http://qcomicbook.linux-projects.net) has a problem with opening files located in directories with invalid encoding (most likely koi-8 encoding, or some other Asian encoding). The problem occurs in the following piece of code:
QDir dir(path);
dir.setSorting(flags);
dir.setFilter(QDir::AllDirs|QDir::Files);
const QStringList files = dir.entryList();
foreach (QString f, files) {
...
}
If path includes dirs/files with invalid encoding, then dir.entryList() just filters them out. The problem is also indicated by QFileDialog::getExistingDirectory dialog which displays "invalid encoding" warning along file dir names.
Is there any workaround for this, ideally transparent to the end user?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论