2009-06-01 14 views
2

lsまたはdirと書いてみたいとします。特定のディレクトリにあるファイルのリストを取得するにはどうすればよいですか? .NETのDirectory.GetFilesと同等のもの、および追加情報。C++のフォルダからファイル名を取得する方法

ない文字列構文についてはよく分から、しかし:

string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 
+2

重複して:http://stackoverflow.com/questions/612097/how-can-i-get-a-list-of-files -in-a-directory-c-or-cを使用して – ChrisN

+0

同意する - SOが私を許可した場合閉じる閉じる – MSalters

答えて

23

、ポータブルおよび優れたライブラリをboost::filesystemをチェックしてください。

編集:ライブラリーからの例:

int main(int argc, char* argv[]) 
{ 
    std::string p(argc <= 1 ? "." : argv[1]); 

    if (is_directory(p)) 
    { 
    for (directory_iterator itr(p); itr!=directory_iterator(); ++itr) 
    { 
     cout << itr->path().filename() << ' '; // display filename only 
     if (is_regular_file(itr->status())) cout << " [" << file_size(itr->path()) << ']'; 
     cout << '\n'; 
     } 
    } 
    else cout << (exists(p) : "Found: " : "Not found: ") << p << '\n'; 

    return 0; 
} 
+0

+1:ポータブルC + +コード。 –

+0

私はBOOSTを良く知っていればいいのに、Windowsにインストールしましたが、VSから使いこなそうとしたら止まってしまいました。その醜いwinAPIよりもはるかにクリーンです。 – Nefzen

-3

これは完全にプラットフォームdepeandedです。
Windowsの場合は、推奨どおりWINAPIを使用する必要があります。

1

Windowsの場合: FindFirstFileFindNextFile、およびFindCloseを使用して、指定したディレクトリのファイルを一覧表示できます。

擬似コード:

Find the first file in the directory. 
do 
    { 
    // 

    }while(NextFile); 

Close 
+0

あなたの返信を評価しています – Nefzen

関連する問題