比较NSStrings中的两个文件路径,包括链接

时间:2016-03-10 01:18:42

标签: objective-c cocoa cocoa-touch nsstring filepath

我正在使用-[NSString isEqualToString:]

解决由路径比较引起的错误
(lldb) po aString
/var/mobile/Containers/Bundle/Application/DE14BC26-B07D-46C2-89BF-E800231BAD1F/a.app/b.bundle/epub/OEBPS/Text/02.xhtml

(lldb) po bString
/private/var/mobile/Containers/Bundle/Application/DE14BC26-B07D-46C2-89BF-E800231BAD1F/a.app/b.bundle/epub/OEBPS/Text/02.xhtml

[aString isEqualToString:bString]会产生NO

但是因为/ var是/ private / var的符号链接,所以它们指的是同一个文件。我可以知道解决这个问题的正确方法吗?

1 个答案:

答案 0 :(得分:3)

尝试使用:

NSString *resolvedPath = [path stringByResolvingSymlinksInPath];
然后比较。请参阅NSString Class Reference

对于NSURL equvent,请使用:

NSURL *resolvedURL = [url URLByResolvingSymlinksInPath];

请参阅NSURL Class Reference