这是一个关于如何使用Qt的问题。我有两条路径,让我们说“c:\user\HERBIE\c\file1.txt”和“c:\user\HERBIE\stuff\file1.txt”。
我想写一个方法来告诉我,这两个路径是否引用同一个文件。此方法应在windows和linux下工作。因此我认为Qt类可以用来解决这个问题,但是我还没有找到如何解决这个问题的方法。
Windows不区分大小写,所以这两个窗口引用同一个文件。在linux上,它们会引用不同的文件。
有人知道怎么做吗?字符串比较不起作用(因为区分大小写),Qt类(如QFileInfo、QDir等)总是以构造函数设置路径的方式返回路径,而不是系统上实际存在的名称。
任何帮助都是非常感谢的!
发布于 2013-11-19 19:22:48
您需要使用#ifdef
编写特定于操作系统的代码。如果在Windows上运行,则将路径转换为大写,并进行比较。如果您是在Linux上,那么就按实际情况进行比较。每个操作系统上都有一些预定义的宏可供您使用。
您可以从这里使用列表:http://sourceforge.net/p/predef/wiki/OperatingSystems/
这样,您的代码将类似于:
#ifdef __WINDOWS__
// do case-insensitive compare
#else
// do case-sensitive compare
https://stackoverflow.com/questions/20080174
复制相似问题