swift - 如何使用 NSURL 查看某个文件夹是否是另一个文件夹的子文件夹?

标签 swift cocoa nsurl

我有一个[URL],它代表一组特殊的父目录。我得到了另一个 [URL] ,它代表分散在系统中的文件。我想知道这些文件是否位于我的任何特殊目录或其任何子目录中。 有没有一种简单/有意的方法可以做到这一点,而无需手动解析/遍历绝对 URL 的路径?

最佳答案

NSURL 中没有任何方法可以让您查看另一个 NSURL 是否代表另一个 NSURL 的根路径。

一种可能的解决方案是使用 path 属性将两个 URL 转换为路径字符串。然后查看一个字符串是否是另一个字符串的前缀。但在获取 URL 路径之前,请同时使用 URLByStandardizingPathURLByResolvingSymlinksInPath 以确保结果一致。

示例:

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/

相关文章:

ios - 未调用 ELCImagePickerController 委托(delegate)方法

ios - 我想使用Xcode中的相同按钮播放多个音频文件

objective-c - 我的对象范围有问题吗?

macos - "Enter Full Screen"wxWidgets 中的热键

swift - NSURL、URL 和 NSData、数据

ios - 选择器 'URLAssetWithURL' 没有已知的类方法

swift - CIFilter key : kCIInputPoint0Key for CIToneCurve - Swift 3 & macOS 出错

ios - Swift 实例化 UIViewController 并在同一文件中添加为 subview

ios - 从 Firebase 中提取数据到数组中

objective-c - 即使应用程序空闲,NSOutlineView 也会不断更新