スポンサーリンク

| キーワード:

Win32apiでファイル一覧取得

取得用関数(_UNICODE指定時)

std::vector<std::wstring> getfiles(std::wstring path) {
  HANDLE hFind;

  WIN32_FIND_DATA win32fd;

  if (path.back() != L'\\') {//最後を\で終了するようにする
    path += L'\\';
  }
  path += L"*.*";//ファイル一覧取得時のワイルドカード

//ここに結果を保存 std::vector<std::wstring> files_ws; hFind = FindFirstFile(path.c_str(), &win32fd); if (hFind == INVALID_HANDLE_VALUE) { return files_ws; //一覧が取得できそうにないなら終了 } do { if (win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
//ディレクトリの時は win32fd.cFileName にディレクトリ名が入っている
//ここで再起などするとさらに深い階層を得られる
} else { //ファイル名登録 files_ws.push_back(win32fd.cFileName); } } while (FindNextFile(hFind, &win32fd)); FindClose(hFind); return files_ws; }

各関数・および構造体は、ワイド文字用とマルチバイト文字用で分かれている

tchar用マルチバイト文字用ワイド文字用
WIN32_FIND_DATA WIN32_FIND_DATAA WIN32_FIND_DATAW
FindFirstFileFindFirstFileAFindFirstFileW
FindNextFileFindNextFileAFindNextFileW

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: