【发布时间】:2018-03-14 18:52:01
【问题描述】:
这是一个关于如何使用Qt的问题。 我有两条路径,让我们说“c:\users\herbie\stuff\file1.txt”和“c:\users\HERBIE\stuff\file1.txt”。
我想写一个方法会告诉我这两个路径是否引用同一个文件。这个方法应该可以在windows和linux下工作。因此,我认为可以使用 Qt 类来解决这个问题,但我还没有找到如何去做。
Windows 不区分大小写,因此在 Windows 上这两个指的是同一个文件。在 linux 上,它们会引用不同的文件。
有人知道怎么做吗?字符串比较不起作用(因为区分大小写),Qt 类(如 QFileInfo、QDir 等)总是返回构造函数设置给它们的路径,而不是系统上实际存在的名称。
感谢任何帮助!
【问题讨论】:
-
为什么字符串比较不起作用?
std::string("HELLO") != std::string("hello") -
因为在忽略大小写的文件系统中,
"HELLO.TXT"与"hello.txt"是同一个文件。 -
在linux上可以正常工作,因为目录“HELLO”与“hello”不同,但在windows上是同一个目录!