问题标签 [std-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 回答
155 浏览

c++ - 使用 std::filesystem,错误显示无法将 int 转换为 _Valty

我正在编写一个程序来帮助我理解 std::filesystem 的来龙去脉。但是,当我开始构建时,我收到一个错误 (C2440),当将 directory_iterator 与 directory_entry 结合使用时,我无法将类型“int”转换为“_Valty”。它在文件系统代码中显示错误,所以我不知道它在我的代码中导致它的位置。

如果我不得不猜测,我会假设它在上面写的最后一个函数中,但我并不完全确定。有人对我将如何解决这个问题有任何想法吗?

0 投票
1 回答
87 浏览

c++ - push_back() a filesystem::path 的 .string().data() 的奇怪行为导致“向量"

运行这个程序

得到

为什么 argv 的第一个元素不是“ao”?

我尝试在 A 行中断,发现当“bo”是 push_back() 进入 argv 时,argv 的第一个元素从“ao”变为“bo”

然后,当我将 A 行更改为

结果相同。

当我将 A 行更改为

突然我得到了预期的结果:

有人可以解释奇怪的行为以及 .string().data() 和 .c_str() 之间的区别吗?

0 投票
0 回答
224 浏览

c++ - std::filesystem copy_file 失败

我正在尝试制作文件的副本。

此代码运行没有错误,但复制的文件不完整:

样品运行:

请注意,原始文件有 131,072 字节,但复制的文件只有 7,409 字节。

0 投票
1 回答
2091 浏览

c++ - 检查 std::filesystem::path 是否在目录中

我有一个由std::filesystem::path. 我想向该路径添加一些用户提供的文件名,并确保生成的路径不在根目录之外。

例如:

最后的路径没问题,在里面/foo/bar。但是如果我给../ham/spam变量userFile,这将导致定义之外的文件rootPath

如何检查生成的文件是否保持在其允许的边界内?

0 投票
1 回答
261 浏览

c++ - 为什么 std::filesystem::path::compare() 和 boost::filesystem::path::compare() 不同?

给定以下代码:

[注意定义 q 的字符串末尾的额外点。]

如上所述,boost::filesystem 接受 p == q 为真,但 gcc 和 llvm 的 std::filesystem 实现说它是假的。

为什么 boost 和 std 之间存在差异?

PS在这个问题的以前版本中,我错误地认为在比较之前应该对路径进行规范化。事实并非如此。即便如此,boost 和 std 之间的差异对我来说仍然是个谜。

0 投票
2 回答
598 浏览

c++ - 我如何知道何时找到子文件夹目录的末尾?C++

我目前正在使用目录迭代器来读取整个目录,它做得很好,因为它读取了目录中任何子文件夹中的每个文件。

有没有办法知道它何时到达子文件夹的末尾并将返回到目录的主文件夹以开始下一个?

例如,如果我的目录有:

我怎么知道它何时击中“另一个子”。

0 投票
1 回答
1089 浏览

c++ - 词法比较 std::filesystem::path 不区分大小写?

我的问题类似于以下内容:要确定 Windows 平台上的两条路径是否相同,比较路径不区分大小写,ei。“C:\test.txt”和“C:\Test.txt”解析为相同的文件元素。例如,我可以通过使用轻松解决这个std::filesystem::equal问题,但是对于这个特殊问题,我想在操作系统往返上节省一点(在空闲时运行并在每个循环上进行 100 次以上的比较 - 我很害怕它会很明显)

在比较std::filesystem::path时,即使通过调用lexical_normal进行词法规范化也是以通用方式完成的,因此会考虑这种情况。这当然是有道理的,但是除了对自己进行字符串比较之外,我看不到在不比较的情况下对库进行此操作的方法:是否有可能以某种方式覆盖路径的比较方式?

我也调查boost::filesystem过,但据我所知也没有解决这个问题。

0 投票
0 回答
337 浏览

c++ - Qt 创建者的 std::filesystem 链接器错误

首先,是的,我看到了这个话题: How to Avoid std::filesystem linker errors with Qt?

我有我的 c++ 项目,在那里我使用了 std::filesystem 。我可以用 cmd ( g++ (GCC) 9.2.0 ) 编译它,例如:

但有了这个 .pro 文件:

不能这样做,我不明白为什么。

错误:

0 投票
0 回答
143 浏览

c++ - 在覆盆子上编译失败并出现“std::filesystem”

我在 SD 卡上安装了带有“Raspbian Buster with desktop”的“Raspberry Pi 3 Model B”。

我安装了使用 g++ 编译所需的所有东西:

我创建了一个小测试文件(test.cpp):

并使用以下命令编译:

但编译失败并出现错误:

怎么解决 ?

0 投票
2 回答
1072 浏览

c++ - 使用通配符的跨平台文件列表

我正在寻找一个跨平台函数,它支持目录内容的通配符列表,类似于 Windows 上的 FindFirstFile。

windows 中接受的通配符模式是否非常特定于 windows?我想要一些支持 FindFirstFile 通配符模式的东西,但他也在 Linux 中工作。