用c语言写一个简单目录管理系统的代码
时间: 2023-12-23 10:02:16 浏览: 88
好的,以下是一个简单的目录管理系统的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
// 定义一个函数来列出目录下的所有文件和子目录
void list_directory(const char *path)
{
DIR *dir;
struct dirent *entry;
dir = opendir(path);
if (dir == NULL) {
perror("opendir");
return;
}
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_DIR) {
// 如果是子目录,递归调用 list_directory 函数
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
// 跳过 . 和 .. 目录
continue;
}
printf("目录:%s\n", entry->d_name);
char sub_path[1024];
snprintf(sub_path, sizeof(sub_path), "%s/%s", path, entry->d_name);
list_directory(sub_path);
} else {
// 如果是文件,输出文件名
printf("文件:%s\n", entry->d_name);
}
}
closedir(dir);
}
// 定义一个函数来创建新的目录
void create_directory(const char *path)
{
if (mkdir(path, 0777) == 0) {
printf("目录创建成功\n");
} else {
perror("mkdir");
}
}
// 定义一个函数来删除目录
void delete_directory(const char *path)
{
if (rmdir(path) == 0) {
printf("目录删除成功\n");
} else {
perror("rmdir");
}
}
// 测试函数
int main()
{
// 列出当前目录下的所有文件和子目录
printf("当前目录:\n");
list_directory(".");
// 创建新目录 test
create_directory("test");
// 列出当前目录下的所有文件和子目录
printf("当前目录:\n");
list_directory(".");
// 删除目录 test
delete_directory("test");
// 列出当前目录下的所有文件和子目录
printf("当前目录:\n");
list_directory(".");
return 0;
}
```
这个代码示例实现了列出目录下所有文件和子目录、创建新目录、删除目录等功能。你可以根据实际需求进行修改和扩展。
阅读全文