我想保存两个具有相同名称的文件,每个文件仅在UpperCase和LowerCase中变化。我正在使用Windows。 C ++ Qt中是否存在忽略大小写敏感的函数?
答案 0 :(得分:2)
Windows已经忽略了区分大小写,因此只要您在Windows上执行代码,您就无需做任何事情来忽略它。
问题是当您需要区分大小写时要区分两条路径时。您确实应该避免在同一目录中包含相同名称的文件。
答案 1 :(得分:0)
这里的问题是Windows API通常不允许使用区分大小写的名称创建文件,即使NTFS文件系统本身支持此功能。
但是,API中有函数CreateFileA
,可以使用标志FILE_FLAG_POSIX_SEMANTICS
来调用该函数,该标志允许访问名称仅大小写不同的文件。
但是,documentation也指出:
将根据POSIX规则进行访问。对于支持该命名的文件系统,这包括允许多个文件的名称(大小写不同)。使用此选项时请格外小心,因为为MS-DOS或16位Windows编写的应用程序可能无法访问使用此标志创建的文件。
我不知道其他应用程序(例如Windows资源管理器)在遇到此类文件时的行为。