C语言 创建文件夹

本文介绍了一个简单的C语言程序,用于检查并创建指定的文件夹。通过使用#include<io.h>和#include<direct.h>,程序能够判断文件夹是否存在,并在不存在的情况下创建该文件夹。

C语言课程设计心得

#include <io.h>
#include <direct.h>

//(需要 #include <io.h> 以及 #include <direct.h>)
// 创建文件夹
void CreateFolder()
{
    //文件夹名称
    char folderName[] = "Data";

    // 文件夹不存在则创建文件夹
    if (_access(folderName, 0) == -1)
    {
        _mkdir(folderName);
    }
}

//然后在main函数中调用CreateFolder函数即可
void main()
{
       CreateFolder();

       system("pause");   
}
在C语言创建文件夹的操作依赖于操作系统的环境,Windows和Linux系统提供了不同的函数和头文件来实现这一功能。 ### Windows系统下创建文件夹 在Windows系统中,可以使用`mkdir`函数来创建文件夹。该函数定义在`<direct.h>`头文件中。以下是一个示例程序: ```c #include <stdio.h> #include <direct.h> // Windows下创建文件夹需要的头文件 int main() { int status; status = _mkdir("test_folder"); // 创建名为test_folder的文件夹 if (status == 0) { printf("Directory created successfully.\n"); } else { printf("Unable to create directory.\n"); } return 0; } ``` ### Linux系统下创建文件夹 在Linux系统中,创建文件夹的函数同样是`mkdir`,但其定义在`<sys/stat.h>`和`<sys/types.h>`头文件中。此外,可以通过设置权限参数来指定新建目录的访问权限。以下是一个示例程序: ```c #include <stdio.h> #include <sys/stat.h> // Linux下创建文件夹需要的头文件 #include <sys/types.h> int main() { mode_t mode = 0777; // 设置文件夹权限为所有用户可读写执行 int status; status = mkdir("test_folder", mode); // 创建名为test_folder的文件夹 if (status == 0) { printf("Directory created successfully.\n"); } else { perror("Unable to create directory"); } return 0; } ``` ### 创建多级目录 如果需要创建多级目录(例如`test_folder/sub_folder`),在Windows下可以直接使用`mkdir`命令,而在Linux下则需要使用第三方库(如`mkdirp`)或手动逐级创建目录。 #### Linux下手动逐级创建多级目录示例: ```c #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <string.h> void create_directory(const char *path) { char tmp[256]; char *p = NULL; size_t len; snprintf(tmp, sizeof(tmp), "%s", path); len = strlen(tmp); if (tmp[len - 1] == '/') tmp[len - 1] = '\0'; for (p = tmp + 1; *p; p++) { if (*p == '/') { *p = '\0'; mkdir(tmp, 0777); // 逐级创建目录 *p = '/'; } } mkdir(tmp, 0777); // 创建最终目录 } int main() { create_directory("test_folder/sub_folder"); // 创建多级目录 return 0; } ``` ### 注意事项 - 在Linux系统中,如果目录已经存在,调用`mkdir`会返回错误。可以通过检查错误码来判断是否是因为目录已存在而失败。 - 在Windows系统中,`_mkdir`函数不会自动处理多级路径,如果需要创建多级目录,需要手动实现或使用第三方库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值