【问题标题】:Retrieving the Leaf Directory检索叶目录
【发布时间】:2013-01-29 18:31:37
【问题描述】:

我有一些旧版本的 boost 代码使用了 boost 文件系统库中路径类的成员函数 leaf()。但是,最近尝试编译它时,我注意到它已经消失并被弃用了。

它正在执行的任务是获取指定文件夹中的所有目录并存储它们。

为了这个例子,假设我将它们输出到控制台。

例如,目录可以是:

/home/user/dir/

/home/user/dir/one

/home/user/dir/two

/hone/user/dir/three

所以我将 /home/user/dir 传递到 directory_iterator 并使用 is_directory() 检查它是否是目录。我想要打印路径的最后一部分,所以...

one
two
three

我知道我可以通过搜索最后一个 / 等来进行一些字符串操作,但我想知道是否还有一种方法可以使用路径类来做到这一点。

【问题讨论】:

    标签: c++ boost boost-filesystem


    【解决方案1】:

    正如我从Boost documentation 中了解到的,leaf() 方法已被替换为 filename()。您可以使用迭代器获取所有元素。 Boost Filesystem Tutorial 中的更多内容,包括使用示例。

    【讨论】:

    • 谢谢。我花了一些时间来测试它,它确实做了我想要的。它只是让我感到困惑,因为它被称为“文件名”,因为它使输出看起来比我想象的要多。
    猜你喜欢
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 2011-01-22
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    相关资源
    最近更新 更多