问题标签 [boost-filesystem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
114 浏览

c++ - 确定不打开文件的确切原因

问题是std::fstream默认情况下不会抛出异常,而是设置可以检查的位。显然,然后可以通过使用这里解释的异常函数来引发异常(我认为)——参见例如c++ 参考页

但是,例如,如果文件的写入权限意味着无法写入文件怎么办?这意味着当我尝试做

会导致失败。但是如何确定它是否由于 uid 没有写权限的确切原因而失败呢?我想我正在寻找的是某种机制可以准确地告诉我这一点,例如它可能会显示“文件无法写入,因为...”。我不想检查文件权限,因为可能发生写入失败的原因有很多(硬盘驱动器故障/损坏等)。如果它能准确地告诉我它失败的原因会更好。

有谁知道 iostreams(尤其是 ostreams)是否存在这样的错误检查系统?(也许在提升?)

0 投票
4 回答
43977 浏览

c++ - C++ / Boost Filesystem - 检测到“_MSC_VER”不匹配:值“1700”与值“1600”不匹配

我是 C++ 和 Boost 的新手。我正在做一个简单的小程序来尝试学习 Boost Filesystem 库。我已按照指示构建 Boost 库。现在,当我尝试编译这个简单的代码时,我得到了 6 个这样的错误。

App.cpp在 ConsoleApp2 项目中的代码

我正在尝试使用 Visual Studio 2010 编译应用程序。我在网上找到的一些信息与 VS 2012 相关。我认为这不适用于我。我想尝试解决5个不匹配错误和最终链接错误。我希望最后一个错误与之前的 5 有关。

0 投票
2 回答
5601 浏览

c++ - 如何使用 Boost Filesystem 忽略隐藏文件(和隐藏目录中的文件)?

我正在使用以下内容递归地遍历目录中的所有文件:

但这包括隐藏文件和隐藏目录中的文件。

如何过滤掉这些文件?如果需要,我可以将自己限制在隐藏文件和目录以“。”开头的平台上。特点。

0 投票
1 回答
2766 浏览

c++ - 单元测试 Boost 文件系统 create_directories

我想对 boost 文件系统函数 create_directories() 的失败情况进行单元测试,即当 create_directory 失败时。有人可以就如何做到这一点提供任何建议吗?另一个要求是代码需要是跨平台的。

0 投票
1 回答
2699 浏览

c++ - boost目录迭代器构造函数中的异常

我正在使用 boost 文件系统迭代器,当我尝试解析特定文件夹时遇到问题。该文件夹是使用 curòlftpfs 作为根安装的远程 ftp 文件夹。相同的文件夹也可以作为 nfs 共享挂载。如果我在 nfs 共享上运行我的应用程序,迭代工作正常,而如果我在 ftp 共享上运行它,我会得到异常。导致崩溃的特定文件夹是 lost+found 文件夹。似乎 root 用户无权访问它,但是在 nfs 共享中,如果我尝试 ls /mnt/remotenfs/lost-found 我得到一个权限被拒绝错误,执行 ls /mnt/remoteftp/lost+found 我得到输入/输出错误。虽然很明显 curlftpfs 存在一些问题,因为它应该返回某种权限错误,但在这种情况下 boost 不应该崩溃。我试过了

但结果是一样的:

为了避免崩溃,我可以做任何额外的控制吗?Ingoring 文件夹将是需要的行为,但我找不到任何允许我忽略它的 boost 文件系统检查功能!我正在使用提升版本 1.49。请注意,当时不可能迁移到更新的增强版本。

0 投票
2 回答
2660 浏览

c++ - 在 std::string 变量中存储使用 boost 库的文件名

我想使用 boost::filesystem 获取目录中所有文件的列表

我可以使用打印文件名,cout但我无法将文件名存储在字符串变量中。我也尝试过类型转换和 strcpy,但这些方法都不起作用。

以下是代码:

0 投票
2 回答
2042 浏览

iterator - boost::filesystem::directory_iterator 是否因删除而失效?

我正在遍历一个目录,当一个项目符合某些条件时,我将其删除。我可以从循环中安全地执行此操作,还是必须将路径保存在数组中并稍后删除?

我在boost::filesystem docs中没有找到相关信息。

0 投票
1 回答
948 浏览

windows - 使用 boost::filesystem::path 作为 std::map 中的键

所以 std::map 想要排序键类型,但我遇到了问题:

"a/b" < "a/c" < "a//b" 但 fs::equivalent("a/b", "a//b")

"a/b" < "a/c" < "a\b" 但 fs::equivalent("a/b", "a\b")

我如何规范化足以创建排序的路径?这甚至可能吗?我尝试在自定义比较运算符中使用 path::generic_string() ,但它不起作用。fs::equivalent() 也无济于事,因为实现相等性对于 std::map 是不够的,它需要排序。这也是为什么这个问题不是如何使用 boost::filesystem “规范化”路径名的重复问题的原因?.

上下文:仅限 Windows,Boost 1.49,文件系统 3。

0 投票
1 回答
559 浏览

c++ - 递归扫描目录中的文件

我正在尝试遍历目录并打印从根目录开始的所有文件的名称。

这是我在程序中使用Boost::Filesystem(1.52.0) 编写的简短片段。

在尝试编译这个时,奇怪的是我得到了构建错误,它指向path.hpp以下代码段中的文件:

我得到的错误是undefined reference to boost::filesystem3::path::wchar_t_codecvt_facet()'|

我在 Ubuntu 12.10 上为我的项目使用 Codeblocks IDE。

0 投票
1 回答
240 浏览

c++ - 删除除特定文件夹外的所有文件夹

我已经有了一次删除一个文件夹的增强功能。remove_all();

文件夹列表如下:

我想用上面的函数将它们全部删除,但保留文件夹 2 和文件夹 5。