C言語でディレクトリを走査する方法
C言語では、opendir、readdir、closedir関数を使いディレクトリの走査を行うことができます。指定したディレクトリ以下のファイルとサブディレクトリをすべて走査する簡単なサンプルコードを以下に示します。
#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
int main() {
DIR *dir;
struct dirent *ent;
// 打开目录
dir = opendir("目录路径");
if (dir == NULL) {
printf("无法打开目录\n");
return 1;
}
// 逐个读取目录项
while ((ent = readdir(dir)) != NULL) {
// 忽略当前目录(.)和上级目录(..)
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
continue;
}
// 输出目录项名称
printf("%s\n", ent->d_name);
// 判断目录项类型
if (ent->d_type == DT_DIR) {
// 如果是子目录,则可以递归遍历子目录
// 例如:递归遍历子目录 dir/subdir
char subdir[256];
snprintf(subdir, sizeof(subdir), "%s/%s", "目录路径", ent->d_name);
printf("子目录:%s\n", subdir);
}
}
// 关闭目录
closedir(dir);
return 0;
}
ご注意ください。
- %lt;sys/types.h%gt;
- 昨日行ったお店で、見覚えのある顔を見かけた。
- libdir
- ディレクトリ内のエントリを列挙する
- サポートすべきデータの型
- スニペット
- コード内の「ディレクトリパス」を実際のディレクトリパスに置き換える必要があります。