勉強メモ > C > ディレクトリ操作(Windows)

ディレクトリ操作(Windows)のメモ



関数一覧

dirent.h をインクルードする
(Borlandの無料コンパイラでは一部がdir.hに書かれてるのでdir.hのインクルードも必要)
(関数名の頭にwが付くのはUnicode文字の名前を使う場合の関数)
(アンダーバーがついてるのが標準名らしい)

  • カレントディレクトリ取得 _getcwd ( getcwd, wgetcwd, _wgetcwd )
  • ディレクトリ作成 _mkdir ( mkdir, wmkdir, _wmkdir )
  • ディレクトリ削除 _rmdir ( rmdir, wrmdir, _wrmdir )
  • カレントディレクトリの変更 _chdir ( chdir, wchdir, _wchdir )

  • ディレクトリハンドル取得 opendir
  • ディレクトリエントリ取得 readdir
  • ディレクトリハンドル解放 closedir

細かい使い方は各コンパイラのドキュメントを参照されたし






カレントディレクトリ取得

  1. #include <stdio.h>
  2. #include <dirent.h>
  3. /* Borlandのフリーコンパイラだと getcwdは dirent.h じゃなく dir.h に書かれてるので dir.h をインクルードする */
  4.  
  5. int main(void)
  6. {
  7. char cd[260];
  8. _getcwd(cd, 260);
  9. printf("%s\n", cd);
  10. return EXIT_SUCCESS;
  11. }


ディレクトリ内のファイル走査

  1. #include <stdio.h>
  2. #include <dirent.h>
  3.  
  4. int main(void) {
  5. DIR *dp;
  6. struct dirent entry;
  7. if ((dp = opendir("c:\\temp\\hoge")) == NULL) { /* 区切り文字の\をエスケープするため\\と書く */
  8. perror(NULL); /* 標準のエラーメッセージを出力 */
  9. exit(EXIT_FAILURE);
  10. }
  11. while ((entry = readdir(dp)) != NULL) {
  12. printf("%s\n", entry->d_name); /* ディレクトリ下のファイル・フォルダを列挙 */
  13. }
  14. closedir(dp); /* 解放 */
  15. return EXIT_SUCCESS;
  16. }


各関数の概要


_getcwd

カレントディレクトリのパスを取得する。
char * _getcwd(char *buffer, int maxlen);
buffer
パスを格納するバッファへのポインタ
maxlen
バッファの最大サイズ
戻り値
引数のbufferのポインタ
つまり printf("%s\n", getcwd(cd,260));のような使い方も出来るということ

タグ:

+ タグ編集
  • タグ:
最終更新:2013年11月20日 05:18