繁体   English   中英

在 macOS 上获取大小写正确的文件名

[英]get case-correct file name on macOS

我在 macOS(文件名不区分大小写)上,我需要找出文件的实际大小写正确名称。 例如,我不知道我的文件是否有名称 A.txt 或 a.txt 或 A.TXT 或 a.TXT 等。我想在屏幕上正确显示名称。

C/C++ 中最快的方法是什么?

更新:我也尝试了<filesystem>和 Qt 框架(我的应用程序在 Qt 中)。 但是这些库的唯一可能解决方案似乎是读取父目录中的所有条目的完整列表,然后比较这些子项中的任何一个是否与给定的名称模式匹配。 出于性能原因,这显然是不可行的。

std::filesystem::canonical将文件的大小写转换为磁盘路径(至少在 macOS 和 Windows 上的 Visual Studio 上,我不确定这是标准的要求):

使用当前目录中名为test.cpp的文件,以下程序打印:

"/Users/user/test.cpp"
#include <filesystem>
#include <iostream>

int main()
{
  std::filesystem::path p("TEST.cpp");
  std::cout << std::filesystem::canonical(p) << "\n";
}

同样的程序也适用于绝对路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM