C言語関係掲示板

過去ログ

No.316.ファイルorディレクトリの判断

[戻る] [ホームページ]

No.1968

ファイルorディレクトリの判断
投稿者---yagi(2002/07/05 13:51:01)


readdirで取得したデータからファイルorディレクトリかの判断方法がわかりません。

誰か教えてください。

No.1972

Re:ファイルorディレクトリの判断
投稿者---かずま(2002/07/05 15:54:27)


> readdirで取得したデータからファイルorディレクトリかの判断方法がわかりません。

readdir が使える処理系なら、stat も使えるでしょう。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>

int main()
{
    struct dirent *p;
    struct stat   buf;
    DIR           *dp = opendir(".");

    if (dp == NULL)
        return 1;
    while (p = readdir(dp)) {
        if (stat(p->d_name, &buf) < 0)
            return 1;
        switch (buf.st_mode & S_IFMT) {
        case S_IFDIR: printf("[d] %s\n", p->d_name); break;
        case S_IFREG: printf("[f] %s\n", p->d_name); break;
        default:      printf("[x] %s\n", p->d_name); break;
        }
    }
    closedir(dp);
    return 0;
}
過去ログに行き、readdir で検索すると、同じようなプログラムが出てきます。
この掲示板は、管理者のメンテナンスが行き届いていて素晴らしいですね。