0

私は次のようなパスを持っています:

C:\path\to\my*file\

対応するフルパスを取得したい(存在する場合):

C:\path\to\my1file\

このQtコードで試しましたが、結果は最初に持っていたのと同じパスです:

QStringList filters;
filters << "C:/path/to/my*file/";

QDir dir;
dir.setNameFilters(filters);

QStringList dirs = dir.entryList(filters);

_path = dirs.at(0);     // get the first path only

フィルターを通過するすべてのファイル/ディレクトリを取得するべきではありませんか?
_path が "C:/path/to/my*file/" と等しいのはなぜですか?

C++98/STLのみで同じことはできますか? (このプロジェクトでは、Boost/C++11 を使用できません)。

4

2 に答える 2

4

filtersファイル/フォルダーをフィルタリングし、QDir オブジェクトにパスを設定するために使用します。

QStringList filters;
filters << "my*file";

QDir dir("C:/path/to/");
QStringList dirs = dir.entryList(filters);

if (dirs.size() > 0)
{
    qDebug() << dirs.at(0);
}
于 2013-07-03T12:04:33.300 に答える
0

ファイル名を展開することをグロビングと呼びます。Windows では、関数 FindFirstFile() / FindNextFile() がグロビングを行います。

于 2013-07-03T11:50:49.150 に答える