編集: std::tr2::sys を使用していますが、ブーストのファイルシステムではありません
私は、コンピューター上のディレクトリをスキャンし、それらのファイルに関する統計を返す単純なアプリに取り組んでいます。scan を呼び出すには、再帰的呼び出しと非再帰的呼び出しの 2 つの方法があります。パスは、スキャンを再帰的に実行するかどうかのフラグとともにスキャン メソッドに渡されます。2 つの実装を考えると、path folder
次のようになります。
directory_iterator start( folder ), end;
for( ; start != end; ++start ) {
//Some code in here
// get the path like this:
auto path = start->path();
}
また
recursive_directory_iterator start( folder ), end;
for( ; start != end; ++start ) {
//Some code in here
// get the path like this:
auto path = start->path();
}
私が遭遇している問題は、通常の directory_iterator を使用するブロックでパスを取得しようとすると、ファイル名のみが返されることです。"myTextFile.txt" を recursive_directory_iterator から取得すると、システム上のファイルへのフル パスが返されます。いずれの場合も、folder の値は同じです (完全なファイル パスも)。パスの先頭部分が切り落とされている理由はありますか、または directory_iterator から返された省略されたパスから完全なファイル パスを取得する方法はありますか?