Mac如何处理不区分大小写的文件名和路径?

时间:2015-06-10 22:52:19

标签: macos

我正在实现一个函数来检查两个文件名是否可以共存在Mac上的文件夹中。 在我遇到“ß”和“SS”的问题之前,这似乎很容易。虽然具有这两个名称的文件可以存在于同一文件夹中,但各种NSString比较方法都将它们视为相同。我已经尝试过caseInsensitiveCompare,localizedCaseInsensitiveCompare,与NSCaseInsensitiveSearch和systemLocale进行比较,但它们都不起作用。任何人都知道操作系统如何进行不区分大小写的检查?

1 个答案:

答案 0 :(得分:0)

重复文件名检查取决于操作系统的文件系统,因此您应使用NSFileManager实例来确定文件名相等。

//Your string to check if it exists. Obviously, it should not be nil
NSString * filePath = nil;

//NSFileManager assumes tilde's are already resolved. 
filePath = [filePath stringByExpandingTildeInPath];

NSFileManager * fileManager = [NSFileManager defaultManager];

if ([fileManager fileExistsAtPath:filePath])
{
   //A file already exists with that name. 
}