• ベストアンサー

Windowsで任意のフォルダにあるファイルの名称を取得したいのですが

Windowsで、任意のフォルダにあるファイルの名称を取得したいのですが、どのようにすればよいのか分かりません。ご存知でしたら教えてください。どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

任意のフォルダ内のファイルの名前の一覧ってことかと想像します。 と、FindFirstFile() と FindNextFile() を使うのがよろしいかと。 以下使用例でも。コンパイルしてませんが……。 #include <windows.h> #include <stdio.h> int main(){   HANDLE h;   WIN32_FIND_DATA fd;   h = ::FindFirstFile(".\\*", &fd);   if(h == INVALID_HANDLE_VALUE){     ::MessageBox(NULL, "エラー", "えらー", MB_OK);     return 1;   }   do{     /*      フォルダ内の各ファイル名が fd.cFileName に      格納された状態でこの部分は実行されます。     */     remove(fd.cFileName);     /*      なので、例えばこうすると、      ディレクトリ内の全ファイルが削除されます。     */   }while(FindNextFile(h, &fd));   return 0; } より詳しい仕様などは参考 URL をどうぞ。

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/jpfileio/html/_win32_findfirstfile.asp
ketchappt
質問者

お礼

参考になりました。どうも有難うございます!

その他の回答 (1)

回答No.1

こんなかんじです。 WIN32_FIND_DATA findData ; HANDLE hFile ; hFile = FindFirstFile ( "フォルダ名\\*.*" , &findData ) if ( hFile != INVALID_HANDLE_VALUE ) { do { if ( !( findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) ) { printf ( "%s\n" , findData.cFileName ) ; } } while ( FindNextFile ( hFile , &findData ) ) ; FindClose ( hFile ) ; }

関連するQ&A