gpt4 book ai didi

C++:boost/文件系统:一些问题

转载 作者:太空狗 更新时间:2023-10-29 22:52:27 25 4
gpt4 key购买 nike

我在 Ubuntu 环境中使用 C++ 中的 Boost 库。我有一些不清楚的问题:

  1. 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;
    }

    => 我确信在我运行程序的那一刻,在与可执行文件相同的位置有一个目录 temp。但总是返回:“路径不是目录”?

  2. fs::last_write_time

    • fs::last_write_time(path) 是否能够为目录或文件的给定路径获取修改的最后日期时间?

    • 如果对于目录也是如此,如果我将文件也添加到文件夹中,是仅对于创建目录时的目录还是最后日期时间也是如此?

  3. fs::directory_iterator

    • fs::directory_iterator dir(full_path) => 我如何检查这个“目录”是否有任何子目录?
  4. 在 boost::fileSystem 中有什么方法可以检查文件是否正在打开?

在此先感谢您,希望您能帮助我理清思路!

最佳答案

  1. 看起来应该可行。你为什么不放一个 cout << fullpath在 if 之前确保路径确实包含您认为的内容?

  2. 我从未使用过 last_write_time。那个帮不了你。

  3. 您必须遍历目录的内容并使用 fs::is_directory(dir->status())确定给定目录条目是否为目录。 (假设 dir 是你的目录迭代器)

  4. 我认为 boost::filesystem 中没有任何东西可以告诉您文件是否打开。

关于C++:boost/文件系统:一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com