在 Linux 中进行 C++ 文件系统操作,可以使用标准库中的 <filesystem>
库(C++17 起可用)或者使用传统的 <sys/stat.h>
和 <unistd.h>
等系统调用
<filesystem>
库:#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
// 创建目录
fs::create_directory("test_dir");
// 遍历目录
for (const auto& entry : fs::directory_iterator("test_dir")) {
std::cout << entry.path() << std::endl;
}
// 删除目录
fs::remove_all("test_dir");
return 0;
}
<sys/stat.h>
和 <unistd.h>
进行文件系统操作:#include <iostream>
#include <sys/stat.h>
#include <unistd.h>
#include <cstring>
int main() {
// 创建目录
if (mkdir("test_dir", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == -1) {
std::cerr << "Error creating directory: " << strerror(errno) << std::endl;
return 1;
}
// 遍历目录
DIR *dir = opendir("test_dir");
if (dir == nullptr) {
std::cerr << "Error opening directory: " << strerror(errno) << std::endl;
return 1;
}
struct dirent *entry;
while ((entry = readdir(dir)) != nullptr) {
std::cout << entry->d_name << std::endl;
}
closedir(dir);
// 删除目录
if (rmdir("test_dir") == -1) {
std::cerr << "Error removing directory: " << strerror(errno) << std::endl;
return 1;
}
return 0;
}
注意:在使用系统调用时,需要处理错误情况,例如使用 strerror(errno)
获取错误信息。同时,这些操作可能需要相应的权限,因此在实际应用中要注意权限管理。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。