在 Ubuntu(Linux)下,opendir 本身只是打开一个目录,并不能直接“读取”文件内容,也不能直接判断是否是隐藏文件。
opendir + readdir 可以列出隐藏文件. 开头的文件”opendir 不会自动过滤隐藏文件,也不会专门“读隐藏文件”在 Linux 中:
. 开头(如 .bashrc)opendir 打开目录readdir 读取目录项(包括隐藏文件)示例:
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir = opendir(".");
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
这段代码 会列出 . .. 以及所有隐藏文件。
需要自己过滤:
if (entry->d_name[0] == '.')
continue; // 跳过隐藏文件
opendir 读不到” → 错误ls 默认不显示隐藏文件,是因为 ls 自己过滤了| 问题 | 答案 |
|---|---|
opendir 能读隐藏文件吗 |
能(配合 readdir) |
| 是否自动排除隐藏文件 | 否 |
| 隐藏文件本质 | 以 . 开头的文件名 |
如果你是在写 C / C++ / shell / Python 程序,我也可以给你对应示例。