基本
.path().filename().string() 表示文件名
.path().string() 表示文件路径
#include <boost/filesystem.hpp>
for(auto& p : boost::filesystem::directory_iterator(file_dir_path)){
string filename =p.path().filename().string();
filelist.push_back(filename);
}
sort(filelist.begin(),filelist.end());
for(auto p:filelist)
{
cout<<p<<endl;
}
编译的时候需要链接库
g++
-lboost_system -lboost_filesystem
cmake
target_link_libraries(run_online boost_filesystem)
target_link_libraries(run_online boost_system)
其他功能
#include<iostream>
#include<fstream>
#include<boost/filesystem.hpp>
int main()
{
namespace bf=boost::filesystem;//简单别名
//filesystem中最基本的类型
bf::path path("/tmp/test");
//对当前的目录的操作
bf::path old_cpath=bf::current_path(); //取得当前目录
bf::path file_path = path / "file"; //path重载了 / 运算符
//判断文件存在性
if(bf::exists(path))
{
std::ofstream out(path.file_string().c_str());
if(!out) return 1;
out << "一个测试文件\n";
} else {
std::cout << path << "不存在\n";
//目录不存在,创建
bf::create_directory(path);
std::ofstream out(file_path.file_string().c_str());
if(!out) return 1;
out << "一个测试文件\n";
}
bf::current_path(path); //设置当前为/home
if(bf::is_regular_file(path))
{
std::cout << path << "是普通文件\n";
std::cout << path << ": 大小为" << bf::file_size(path) <<'\n';
bf::create_symlink(file_path, "/tmp/test/file-symlink");
}
bf::current_path(old_cpath);
bf::remove(file_path);//删除文件file_path
bf::remove_all(path);//递归地删除
return 0;
}