下面的代碼不知何故沒有注意到在其名稱中使用非ASCII字符的文件的文件(西裏爾字母,具體):的QDir和QDirIterator忽略與非ASCII文件名
for (int path = 1; path < argc; path++) {
QFileInfo fi(argv[path]);
if (fi.isDir()) {
QDir dir(argv[path], "", QDir::LocaleAware, QDir::AllEntries);
qDebug() << dir.entryList();
QDirIterator it(QString(argv[path]), QDirIterator::Subdirectories);
while (it.hasNext()) {
it.next();
qDebug() << it.fileInfo().absoluteFilePath();
/* Processing; irrelevant in the context of the question */
}
}
}
究竟是什麼我做錯了這裏?我應該如何處理QDir和QDirIterator,讓他們知道西里爾文件名?
系統語言環境爲en_US.UTF-8
。
更新:在Windows上,一切工作正常。
很好,它的工作原理。 :-)但是,我不明白這個方法如何或爲什麼起作用,而QString :: fromLocal8Bit(argv [i])不會。 – dpq 2010-01-02 00:18:37