• ベストアンサー

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が使えると思います

関連するQ&A

  • C/C++言語で変数名から変数のアドレスを取得する

    C/C++言語で変数名から変数のアドレスを取得する方法があれば、ご教示願います。 例えばですが、関数GetProcAddress()は、関数の文字列からエクスポート済みの関数のアドレスを戻り値で返しています。 GetProcAddress()と同じようにアドレスを取得したい変数名の文字列を渡して、変数のアドレスを取得したいです。 よろしくお願いします。

  • c言語の変数一覧の取得

    c言語で書かれたコードについて、使われている変数名や関数名の一覧を取得することはできるのでしょうか? 何か方法がありましたら教えてください。

  • テキストファイルの行数を取得する方法(C言語

    C言語でテキストファイルのトータル行数を取得する関数又はその方法を教えてほしいのですが。 宜しくお願いします。

  • C++でのファイル取得についてしりたいです。

    C++で以下のようなフォルダ構成だったときにフォルダ内のファイル名を順に取得する方法について教えていただきたいです。 javaでいうlistFilesのようなものを使いたいのです。 よろしくおねがいします。 環境はwindows7 Visual Studio C++2010です。

  • あるディレクトリ内のファイルをファイル名でソートして取得

    _FindFirst や FindFirstFile を使用すると指定フォルダの ファイル名を順番に取得できるのですが、ファイル名でソートされていません。 ファイル名でソートして取得する関数(API)はあるのでしょうか?

  • ファイル名の取得(エクセルVBA)

     エクセル97を使用しています。 過去ログを見て、ファイル名の取得にDir関数が使えることは、判ったのですが、不特定数のファイル名に対応する方法が思いつきません。  特定のフォルダ内の、数が可変するファイルのファイル名を、検索した時点で、全部セル(または変数でも可)上に取得する方法って、ありますでしょうか?  よろしくお願いします。

  • フォルダ内のファイル名を取得する

    windows 7なのですが、フォルダ内にあるファイル名をテキストとしてすべて一括で取得する方法はないでしょうか? また、フォルダの中にさらに複数のフォルダがあっても、上の階層のフォルダからすべてファイル名を取得する方法はないでしょうか? よろしくお願いいたします。

  • フォルダ名のフルパスからファイルポインタ

    C言語の初心者で、なにがなんだかわかりません。 ファイル入出力関数の話ですが、 フォルダ名のフルパスを指定された関数内で ファイルポインタを指定して他関数を使用します。 そもそもフォルダ名のフルパスからファイルポインタを 得ることができるのでしょうか?

  • C言語で分からないところがあります。整数値の分割取得みたいなこと・・

    C言語で分からないところがあります。整数値の分割取得みたいなこと・・ で困っています。 僕はC言語初心者です。 コンパイラはVC2008です。 今回整数値を分割して取得したいと考えています。 例えば次のような整数値(int型)があったとします。 235465667 この整数値を3つにわけて取得したいのです。つまり 235 465 667 としたいのです。このような働きをしてくれる便利な関数はないのでしょうか? 調べてみたのですが、内容が内容だけに探しにくくて見つけられませんでした。 もし、関数がなければ、どのようにすれば取得できるかコードを教えてほしいです。 よろしくお願いします!

  • c言語でファイルのタイムスタンプを書き換えたい

    Linuxの環境でc言語を利用してファイルのアクセス日時と更新日時を指定したモノに書き換える方法はないでしょうか stat関数を利用して取得する方法まではわかったのですが書き換える方法がわかりません それともファイルのタイムスタンプはユーザーが勝手に書き換える事ができないものだったりするのですか?

専門家に質問してみよう