Linux C++开发中如何进行文件系统操作

发布时间:2024-12-16 20:42:59 作者:小樊
来源:亿速云 阅读:82

在 Linux 中进行 C++ 文件系统操作,可以使用标准库中的 <filesystem> 库(C++17 起可用)或者使用传统的 <sys/stat.h><unistd.h> 等系统调用

  1. 使用 C++17 的 <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;
}
  1. 使用 <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) 获取错误信息。同时,这些操作可能需要相应的权限,因此在实际应用中要注意权限管理。

推荐阅读:
  1. Unix / Linux 文件系统操作
  2. Linux下如何进行文件备份

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:C++在Linux大数据处理中的应用

下一篇:如何提高Linux C++程序的安全性

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》