ディレクトリ操作(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
細かい使い方は各コンパイラのドキュメントを参照されたし
カレントディレクトリ取得
#include <stdio.h>
#include <dirent.h>
/* Borlandのフリーコンパイラだと getcwdは dirent.h じゃなく dir.h に書かれてるので dir.h をインクルードする */
int main(void)
{
char cd[260];
_getcwd(cd, 260);
return EXIT_SUCCESS;
}
ディレクトリ内のファイル走査
#include <stdio.h>
#include <dirent.h>
int main(void) {
DIR *dp;
struct dirent entry;
if ((dp = opendir("c:\\temp\\hoge")) == NULL) { /* 区切り文字の\をエスケープするため\\と書く */
perror(NULL
); /* 標準のエラーメッセージを出力 */ }
while ((entry = readdir(dp)) != NULL) {
printf("%s\n", entry
->d_name
); /* ディレクトリ下のファイル・フォルダを列挙 */ }
closedir(dp); /* 解放 */
return EXIT_SUCCESS;
}
各関数の概要
_getcwd
カレントディレクトリのパスを取得する。
char * _getcwd(char *buffer, int maxlen);
- buffer
- パスを格納するバッファへのポインタ
- maxlen
- バッファの最大サイズ
- 戻り値
- 引数のbufferのポインタ
つまり printf("%s\n", getcwd(cd,260));のような使い方も出来るということ
最終更新:2013年11月20日 05:18