有没有一种方法可以忽略Qt c ++中文件名区分大小写的问题?

时间:2018-08-09 10:29:17

标签: c++ windows qt qt4.8 qfile

我想保存两个具有相同名称的文件,每个文件仅在UpperCase和LowerCase中变化。我正在使用Windows。 C ++ Qt中是否存在忽略大小写敏感的函数?

2 个答案:

答案 0 :(得分:2)

Windows已经忽略了区分大小写,因此只要您在Windows上执行代码,您就无需做任何事情来忽略它。

问题是当您需要区分大小写时要区分两条路径时。您确实应该避免在同一目录中包含相同名称的文件。

答案 1 :(得分:0)

这里的问题是Windows API通常不允许使用区分大小写的名称创建文件,即使NTFS文件系统本身支持此功能。

但是,API中有函数CreateFileA,可以使用标志FILE_FLAG_POSIX_SEMANTICS来调用该函数,该标志允许访问名称仅大小写不同的文件。 但是,documentation也指出:

  

将根据POSIX规则进行访问。对于支持该命名的文件系统,这包括允许多个文件的名称(大小写不同)。使用此选项时请格外小心,因为为MS-DOS或16位Windows编写的应用程序可能无法访问使用此标志创建的文件。

我不知道其他应用程序(例如Windows资源管理器)在遇到此类文件时的行为。