详解C++ 创建文件夹的四种方式
在C++中创建一个文件夹一般有4种方式,分别是:
- 通过 Win32 API 函数
CreateDirectory
创建文件夹。 - 利用C++11标准库中
std::filesystem
的create_directory
函数创建文件夹。 - 调用C++标准库中的
mkdir
函数创建文件夹。 - 使用操作系统的命令行窗口执行
mkdir
命令创建文件夹。
下面我们将详细的讲解这4种方式。
1. 通过 Win32 API 函数 CreateDirectory
创建文件夹
代码示例:
#include <Windows.h>
#include <iostream>
int main() {
LPCWSTR path = L"C:\\example_folder";
if (CreateDirectoryW(path, NULL)) {
std::cout << "Folder created successfully!" << std::endl;
} else {
std::cout << "Failed to create folder..." << std::endl;
std::cout << "Error code: " << GetLastError() << std::endl;
}
return 0;
}
其中 CreateDirectoryW
函数的第一个参数为要创建的文件夹的完整路径,第二个参数为可选的安全性属性,默认设置为 NULL
。
2. 利用C++11标准库中 std::filesystem
的 create_directory
函数创建文件夹
代码示例:
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
std::string folder_path = "example_folder";
fs::path path(folder_path);
try {
if (!fs::exists(path)) {
fs::create_directory(path);
std::cout << "Folder created successfully!" << std::endl;
} else {
std::cout << "Folder already exists..." << std::endl;
}
} catch (fs::filesystem_error& e) {
std::cout << e.what() << std::endl;
}
return 0;
}
其中,我们通过命名空间别名 fs
管理文件系统操作,使用 fs::path
存储路径信息。create_directory
函数可以直接在路径中创建文件夹。
3. 调用C++标准库中的 mkdir
函数创建文件夹
代码示例:
#include <iostream>
#include <sys/stat.h>
int main() {
std::string folder_path = "example_folder";
if (mkdir(folder_path.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == 0) {
std::cout << "Folder created successfully!" << std::endl;
} else {
std::cout << "Failed to create folder..." << std::endl;
}
return 0;
}
其中,mkdir
函数的第一个参数应该是要创建的文件夹的完整路径,第二个参数设置文件夹的访问权限,本示例中设置了其可读、可写、可执行。
4. 使用操作系统的命令行窗口执行 mkdir
命令创建文件夹
代码示例:
#include <iostream>
int main() {
std::string folder_path = "example_folder";
std::string cmd = "mkdir " + folder_path;
if (system(cmd.c_str()) == 0) {
std::cout << "Folder created successfully!" << std::endl;
} else {
std::cout << "Failed to create folder..." << std::endl;
}
return 0;
}
其中,使用 system
函数可以让操作系统执行命令窗口命令,本示例中执行了 mkdir
命令来创建文件夹。
综上所述,我们可以使用4种方法来创建文件夹。其中,第1种方法使用 Win32 API 函数,较为底层,但是对于 Windows 系统有较好的兼容性。第2种方法可以在任何平台上使用,代码中使用了 C++11 标准库中的 std::filesystem
库,代码简洁易懂。第3种方法使用 C++ 标准库中的 mkdir
函数,相对简单直接,但是对于权限控制不方便。第4种方法可以使用任何操作系统上的命令行窗口命令,但是较为底层,控制不方便,同时也有安全性问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C++ 创建文件夹的四种方式 - Python技术站