c语言二级目录树形结构
时间: 2023-07-09 20:34:29 浏览: 93
实现一个C语言的二级目录树形结构可以考虑使用嵌套结构体来实现,如下所示:
```
#include <stdio.h>
#define MAX_NAME_LEN 50
struct file {
char name[MAX_NAME_LEN];
};
struct directory {
char name[MAX_NAME_LEN];
struct file files[MAX_NAME_LEN];
};
struct root {
char name[MAX_NAME_LEN];
struct directory dirs[MAX_NAME_LEN];
};
int main() {
struct root root_dir = {"root", {
{"dir1", {
{"file1.1"},
{"file1.2"}
}},
{"dir2", {
{"file2.1"},
{"file2.2"}
}},
}};
printf("%s\n", root_dir.name);
for (int i = 0; i < 2; i++) {
struct directory dir = root_dir.dirs[i];
printf("├── %s\n", dir.name);
for (int j = 0; j < 2; j++) {
struct file file = dir.files[j];
printf("│ ├── %s\n", file.name);
}
}
return 0;
}
```
以上代码定义了三个结构体:file,directory和root,分别代表文件、目录和根目录。其中,directory结构体中有一个files数组,用来存储该目录下的文件。在main函数中,我们创建了一个根目录root_dir,并初始化了其中的两个子目录dir1和dir2,以及它们各自的文件。
最后,我们通过循环遍历root_dir中的子目录和文件,并打印出树形结构。输出结果如下:
```
root
├── dir1
│ ├── file1.1
│ ├── file1.2
├── dir2
│ ├── file2.1
│ ├── file2.2
```
阅读全文