[cpp]C++学习笔记-filesystem

C++提供的filesystem提供了丰富的文件操作的类和函数。filesystem 库是一个可移植的文件系统操作相关的库,使用POSIX标准表示文件系统的路径,支持多种操作系统平台,因此使用filesystem可以编写跨平台操作目录,文件的C++程序。

注意:
filesystem 不是C++11标准。 VS2012基于boost TR2的指导实现了filesystem库。

头文件:

#include <filesystem>

std::tr2::sys::path

path类实现路径字符串的基本操作。

    //定义一个path对象
    std::tr2::sys::path p("d:/test/test.txt");
    std::tr2::sys::path p2("mytest.cpp");
    std::tr2::sys::path p3;

    //转换为字符串
    string s = p.string();

    //全路径,如果是相对路径定义的path,可以输出全路径
    p3 = std::tr2::sys::system_complete(p2);

    //父目录 
    p3 = p.parent_path(); // d:/test

    //不含扩展名的文件名
    p3 = p.stem(); //test

    //文件名,不含路径,带扩展名
    p3 = p.filename(); //test.txt

    //文件扩展名,带点号
    p3 = p.extension(); //.txt

基本操作

    //定义一个path对象
    std::tr2::sys::path p("d:/test/test.txt");
    std::tr2::sys::path p2("mytest.cpp");
    std::tr2::sys::path p3;

    //当前路径
    p3 = std::tr2::sys::current_path();

    //判断文件是否存在
    bool b = std::tr2::sys::exists(p);

    //取文件大小
    uintmax_t size = std::tr2::sys::file_size(p);

    //获取系统临时文件路径
    p3 = std::tr2::sys::temp_directory_path();

    //删除文件
    bool b2 = std::tr2::sys::remove(p);
    //递归删除
    bool b3 = std::tr2::sys::remove_all(p);

    //复制文件或目录
    std::tr2::sys::copy(p1, p2);

    //复制文件
    bool b4 = std::tr2::sys::copy_file(p1, p2);

    //创建目录,支持递归
    bool b5 = std::tr2::sys::create_directories(p);

    //创建目录
    bool b6 = std::tr2::sys::create_directory(p);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值