用c语言,循环一个目录里的所有文件,并将文件权限以及大小和名字,时间打印出来
时间: 2023-06-09 10:07:20 浏览: 92
好的,这个问题可以使用C语言中的dirent.h头文件中的函数来实现。
具体代码实现如下:
```
#include <dirent.h>
#include <stdio.h>
#include <sys/stat.h>
#include <time.h>
int main() {
DIR *dir;
struct dirent *entry;
struct stat file_stat;
time_t timestamp;
char timebuf[80];
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
return -1;
}
while ((entry = readdir(dir)) != NULL) {
if (stat(entry->d_name, &file_stat) == -1) {
perror("stat");
continue;
}
timestamp = file_stat.st_mtime;
strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M:%S", localtime(×tamp));
printf("%s\t%o\t%ld\t%s\n", entry->d_name, file_stat.st_mode, file_stat.st_size, timebuf);
}
closedir(dir);
return 0;
}
```
这段代码首先打开当前目录,并使用readdir函数读取目录中的每一个文件。然后对于每一个文件,使用stat函数获取文件的权限,大小和最后修改时间,并将这些信息通过printf函数打印出来。代码中使用了时间格式化函数strftime来将时间格式化为字符串。
阅读全文