検索対象のパスとファイル名に正規表現が含まれている場合、このパスの下にファイル名パターンを満たすファイルが存在するかどうかを確認する方法はありますか? C++で?? 例: パスの下
/path
ファイル「foo.*」を検索したい
foo.*
結果は foo.1 や foo.2 などになります。結果を取得したいと思います(つまり、ファイルが存在するかどうかと正確なファイル名を知りたいということです)、ありがとう
検索対象のパスとファイル名に正規表現が含まれている場合、このパスの下にファイル名パターンを満たすファイルが存在するかどうかを確認する方法はありますか? C++で?? 例: パスの下
/path
ファイル「foo.*」を検索したい
foo.*
結果は foo.1 や foo.2 などになります。結果を取得したいと思います(つまり、ファイルが存在するかどうかと正確なファイル名を知りたいということです)、ありがとう
boost ::filesystemを調べます。それ以外の場合は、OS の API を調べる必要があります。
以下に例を示します (未テスト):
boost::filesystem::path dir("/path");
boost::filesystem::directory_iterator it(dir), end;
BOOST_FOREACH(const boost::filesystem::path& p, std::make_pair(it, end))
{
if(boost::filesystem::is_regular_file(p))
{
if(p.stem().string() == "foo")
{
std::cout << p.extension() << '\n';
}
}
}