• ベストアンサー

C言語でファイル名を取得

C言語でフォルダ内のファイル名を取得する方法ってありますか? そういう関数とかありませんか? 教えてほしいのですが。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#1のサンプル gcc ,bcc32で確認 -------------------------------------------------------------- #include <stdio.h> #include <dirent.h> #include <errno.h> void main(void){ char DIRPATH[]="c:\\temp\\"; DIR *dir; struct dirent *entry; dir=opendir(DIRPATH);//必ず有る前提 while(NULL!=(entry=readdir(dir))){ DIR *test; char buff[260]; sprintf(buff,"%s%s\\", DIRPATH,entry->d_name); errno=0; test=opendir(buff); if(test==NULL && errno!=0){// When UNIX : errno==ENOTDIR printf("%s\n",entry->d_name); } else { closedir(test); } } closedir(dir); }

その他の回答 (2)

  • PG_RankB
  • ベストアンサー率40% (12/30)
回答No.2

お使いのOSは何ですか? Windows系で95以降でしたら、 ・FindFirstFile ・FindNextFile ・FindClose を使用して、指定ディレクトリ以下、サブディレクトリ内のファイル名を取得する事が可能です。 多少自分で処理を肉付けして調節する必要がありますが、それ位は関数の使用法を調べ、自分で考えれば簡単に実装出来ると思います。 windows.hをインクルードすれば使用可能になりますが、Win32API全てをインクルードしたくない場合、 宣言はwinbase.h内にあり、インポートライブラリはkernel32.libになります。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

POSIX系だったら opendir,readdirが使えると思います