我在Ubuntu环境中运行的C ++中使用Boost库。我有一些问题我不清楚:
fs::is_directory
namespace fs = boost::filesystem;
fs::path full_path(fs::initial_path<fs::path>() );
full_path = fs::system_complete(fs::path( "temp/"));
if(fs::is_directory(full_path ))
{
cout << "the path is a directory" << endl;
}
else
{
cout << "the path is not a directory" << endl;
}
=&GT;我确信在我运行程序的那一刻,在可执行文件的同一位置有一个目录temp。但它总是返回:“路径不是目录”?
fs::last_write_time
这个fs::last_write_time(path)
是否能够获得修改目录或文件的给定路径的最后日期时间?
如果某个目录也是如此,那么在创建目录时该目录是真的吗,或者如果我在文件夹中添加文件的话也是如此吗?
fs::directory_iterator
fs::directory_iterator dir(full_path)
=&gt;如何检查这个'dir'是否有任何子目录?在boost :: fileSystem中是否有办法检查文件是否正在打开?
提前致谢,我希望你能帮助我明白我的想法!
答案 0 :(得分:2)
似乎应该有效。你为什么不在if之前放一个cout << fullpath
以确保路径真的包含你认为它的作用?
我从未使用过last_write_time。无法帮助你。
您必须遍历目录的内容并使用fs::is_directory(dir->status())
来确定给定的目录条目是否是目录。 (假设dir是你的目录迭代器)
我不相信boost :: filesystem中有任何内容可以告诉你文件是否打开。
答案 1 :(得分:0)
重新4:你不能通过简单地拨打[boost::filesystem|std]::fstream::is_open()
来确定文件当前是否已打开?