1. 引言

在File Manager种有三种文件路径的查找方法:NSSearchPathForDirectoriesInDomains(后文简称为NSSearch)、urls和url。虽然官方文档中有写到“应该考虑使用 FileManager的urls(for:in:)和url(for:in:appropriateFor:create:)作为首选格式”,但我个人认为NSSearch仍有用武之地,比如:在需要返回字符串格式的路径时,使用NSSearch更方便。以下内容根据官方文档对这三种方法进行一个简短的对比,以便在开发过程中有针对性的取用。

2. 三种文件路径查找方法

2. 1 NSSearchPathForDirectoriesInDomains(_:_:_:)

该方法返回一个包含指定域名的目录树的字符串的字典。

func NSSearchPathForDirectoriesInDomains(
    _ directory: FileManager.SearchPathDirectory,
    _ domainMask: FileManager.SearchPathDomainMask,
    _ expandTilde: Bool
) -> [String]

2.2 urls(for:in:)

该方法返回一个包含指定域名的 URL 的数组。

func urls(
    for directory: FileManager.SearchPathDirectory,
    in domainMask: FileManager.SearchPathDomainMask
) -> [URL]

2.3 url(for:in:appropriateFor:create:)

该方法返回一个 URL,可以用于查找指定文件夹的路径。

func url(
    for directory: FileManager.SearchPathDirectory,
    in domain: FileManager.SearchPathDomainMask,
    appropriateFor url: URL?,
    create shouldCreate: Bool
) throws -> URL

Reference

FileManager | Apple Developer Documentation
NSSearchPathForDirectoriesInDomains(\_:\_:\_:) | Apple Developer Documentation
FileManager.SearchPathDirectory | Apple Developer Documentation
urls(for:in:) | Apple Developer Documentation
url(for:in:appropriateFor:create:) | Apple Developer Documentation

Last modification:August 19, 2023
您赞赏,我就多写点儿。