C语言中给出创建多级目录代码示例
时间: 2024-04-11 09:33:34 浏览: 88
当你在C语言中创建多级目录时,你可以使用递归的方式来实现。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
// 递归创建多级目录
int create_directory(const char *path) {
// 判断目录是否已经存在
struct stat st;
if (stat(path, &st) == 0) {
printf("目录 %s 已经存在\n", path);
return 0;
}
// 创建目录
if (mkdir(path, 0777) == 0) {
printf("成功创建目录 %s\n", path);
return 1;
}
// 如果无法创建目录,则尝试创建父目录
char *parent_path = strdup(path);
char *last_slash = strrchr(parent_path, '/');
if (last_slash != NULL) {
*last_slash = '\0';
if (create_directory(parent_path)) {
// 父目录创建成功后再次尝试创建目录
if (mkdir(path, 0777) == 0) {
printf("成功创建目录 %s\n", path);
free(parent_path);
return 1;
}
}
}
printf("无法创建目录 %s\n", path);
free(parent_path);
return 0;
}
int main() {
const char *path = "/path/to/your/directory";
if (create_directory(path)) {
printf("多级目录创建成功!\n");
} else {
printf("多级目录创建失败!\n");
}
return 0;
}
```
这段代码中的 `create_directory` 函数使用递归的方式创建多级目录。它首先会判断目录是否已经存在,如果不存在则尝试创建目录。如果无法创建目录,则会尝试创建父目录,直到成功创建目标目录或者无法再创建更上级的父目录为止。你可以根据自己的需求修改代码中的目录路径。注意,在使用此代码时,请确保你对目录的权限设置正确。
阅读全文