我有一个[URL]
,它代表一组特殊的父目录。我得到了另一个 [URL]
,它代表分散在系统中的文件。我想知道这些文件是否位于我的任何特殊目录或其任何子目录中。 有没有一种简单/有意的方法可以做到这一点,而无需手动解析/遍历绝对 URL 的路径?
最佳答案
NSURL
中没有任何方法可以让您查看另一个 NSURL
是否代表另一个 NSURL
的根路径。
一种可能的解决方案是使用 path
属性将两个 URL 转换为路径字符串。然后查看一个字符串是否是另一个字符串的前缀。但在获取 URL 路径之前,请同时使用 URLByStandardizingPath
和 URLByResolvingSymlinksInPath
以确保结果一致。
示例:
NSURL *specialURL = ... // a URL for one of the special parent directories
NSURL *fileURL = ... // a URL for one of the files to check
NSString *specialPath = [specialURL.URLByStandardizingPath.URLByResolvingSymlinksInPath.path stringByAppendingString:@"/"];
NSString *filePath = fileURL.URLByStandardizingPath.URLByResolvingSymlinksInPath.path
if ([filePath hasPrefix:specialPath]) {
// This file is in this special directory
}
关于swift - 如何使用 NSURL 查看某个文件夹是否是另一个文件夹的子文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43193772/