C++ 文件与路径操作

C++ C++ 文件与路径操作

首先,我需要了解这些函数属于哪个C++标准库部分。C++标准库中有一个叫做的头文件,里面包含了许多与文件系统操作相关的函数和类。这些函数应该是在这个头文件中定义的。
在C++编程中,处理文件和目录操作时,可以使用标准库中的头文件,其中包含了一系列用于文件系统操作的函数和类

is_directory函数

这个函数看起来是用来检查某个路径是否是一个目录的。我猜它的返回值应该是布尔类型,如果是目录就返回true,否则返回false。
我想,这个函数的参数应该是一个文件路径,可能是用std::string或者某种文件路径对象表示的。
为了测试这个函数,我可以编写一个简单的C++程序,传入一个已知的目录路径和一个文件路径,然后输出结果,看看是否正确。

create_directory函数

这个函数应该是用来创建一个新的目录的。它的参数可能也是一个文件路径,指定要创建的目录的路径。
我需要了解,如果这个目录的父目录不存在,函数是否会自动创建父目录?或者需要先创建父目录?
另外,如果指定的目录已经存在,函数会如何处理?是否会报错,或者直接返回?
我可以尝试编写一个程序,传入一个不存在的路径,调用create_directory,然后检查目录是否被成功创建。

is_regular_file函数:

这个函数应该是用来检查某个路径是否是一个普通的文件。与is_directory类似,返回值是布尔类型。
我想,如果路径是一个符号链接或者其他类型的文件,这个函数会返回false。
同样地,我可以编写一个程序,传入一个普通文件的路径和一个目录的路径,看看函数的返回值是否符合预期。
接下来,我需要实际编写一些代码来测试这些函数的行为。


#include <filesystem>
#include <iostream>
#include <string>

int main() {
    std::string dir_path = "test_dir";
    std::string file_path = "test_file.txt";

    // 检查是否是目录
    if (std::filesystem::is_directory(dir_path)) {
        std::cout << dir_path << " 是一个目录。" << std::endl;
    } else {
        std::cout << dir_path << " 不是一个目录。" << std::endl;
    }

    // 创建目录
    if (std::filesystem::create_directory(dir_path)) {
        std::cout << "成功创建目录:" << dir_path << std::endl;
    } else {
        std::cout << "无法创建目录:" << dir_path << std::endl;
    }

    // 检查是否是普通文件
    if (std::filesystem::is_regular_file(file_path)) {
        std::cout << file_path << " 是一个普通文件。" << std::endl;
    } else {
        std::cout << file_path << " 不是一个普通文件。" << std::endl;
    }

    return 0;
}

https://zhuanlan.zhihu.com/p/555627547
https://c-cpp.com/cpp/filesystem
https://zhuanlan.zhihu.com/p/672691945
https://www.cnblogs.com/yanghailin/p/11445770.html
https://www.zhihu.com/column/c_1662775871361613824

posted @ 2025-08-06 17:26  michaelchengjl  阅读(30)  评论(0)    收藏  举报