Nad*_*'El 7 c++ c++17 std-filesystem
传统的 Unix shell 实用程序dirname查找包含给定文件的目录的名称。如果您想在同一目录中查找其他姐妹文件,这非常有用。这里有一些例子:
$ dirname /some/dir/filename
/some/dir
$ dirname dirname/filename
dirname
$ dirname filename
.
Run Code Online (Sandbox Code Playgroud)
新的 C++ std::filesystem 的parent_path()最后一个错误(或者看起来是这样):
$ dirname /some/dir/filename
/some/dir
$ dirname dirname/filename
dirname
$ dirname filename
.
Run Code Online (Sandbox Code Playgroud)
输出:
parent of filename: ""
Run Code Online (Sandbox Code Playgroud)
返回空字符串而不是“.” 不仅与传统的不同dirname,当在想要在此父级上添加“/...”以创建姐妹文件的名称的代码中使用时也是错误的 - 这会导致错误的“/sister”而不是预期为“./妹妹”。
这是 std::filesystem 中的错误还是故意行为?这种行为的原因是否记录在某处?
我不会与你争论这是否正确,但如果你总是使用std::filesystem::operator/而不是进行字符串操作,我不知道你将如何遇到你在问题中提到的问题。
特别是,std::filesystem::path("filename").parent_path()/std::filesystem::path("filename")给你 just "filename", not "/filename"。我相信这就是 API 应该使用的方式。
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |