【问题标题】:use boost to return file in a directory使用 boost 返回目录中的文件
【发布时间】:2014-03-07 02:44:18
【问题描述】:

我有一个应该包含一个文件的目录。它的扩展名为 .png,但名称是半随机的。我已经尝试了十几个使用 boost 获取文件名的教程,但它们都没有错误地退出控制台。使用 boost 获取此文件名的最简单函数是什么?

【问题讨论】:

  • '我已经尝试了十几个使用 boost 获取文件名的教程'你能不能更具体一点,可能是你的一个试验问题。因为它很不清楚你在问什么?!?有boost::file::exists(),如果这是你所追求的。
  • 我在问那个路径。假设 fs::path mypath = "C:\\test\\";返回该目录中唯一文件的名称
  • boost::pathwildcard search?恐怕从这个参考资料来看这是不可能的。但是您当然可以使用正则表达式从路径中解析任何列出的文件名。
  • 不起作用。 boost:filesystem:directory_entry 没有成员叶子
  • 如果您的目录只包含一个文件,您不能生成该目录中所有文件的列表。那么唯一存在的文件一定是你想要的。

标签: c++ file boost directory filesystems


【解决方案1】:

要访问放置在您拥有的特定 boost::path 实例中的文件/目录名称,请使用提升 directory_iterator,如链接示例中所示。

要检查通过迭代找到的特定文件/目录名称签名,boost::regex 可能会派上用场。

【讨论】:

  • 错误标识符 is_directory 未定义。对于 is_regular、file_size 和存在,directory_iterator 未定义相同
  • 您确定安装了引用的 boost 版本并正确设置了所有 -I-L-l<lib> 选项吗?更不用说命名空间引用了? 编辑:对不起,我给了directory_iterator的错误链接,请再次检查...
  • @Aaron 我已经更新了链接,请检查那里的示例!
猜你喜欢
  • 2013-05-30
  • 2012-03-11
  • 2016-03-03
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 2020-01-04
相关资源
最近更新 更多