为啥 NSFileManager 不能与 UIDocumentBrowserViewController 一起使用?

Posted

技术标签:

【中文标题】为啥 NSFileManager 不能与 UIDocumentBrowserViewController 一起使用?【英文标题】:Why NSFileManager doesn't work with UIDocumentBrowserViewController?为什么 NSFileManager 不能与 UIDocumentBrowserViewController 一起使用? 【发布时间】:2019-01-02 20:35:05 【问题描述】:

我需要检查目录中的文件是否存在并且可以打开,但我的FileManager.default.fileExists(atPath: <#url_from_uidocumentbrowservc#>) 返回 false。我无法获取所选目录中的项目列表,我无法检查我的项目是否存在。

还有一件事,我想知道选定项目的根目录中包含多少项目。例如,我选择项目文件并想检查项目目录中包含多少项,然后将这些文件用作项目依赖项。

看代码:

func presentDocument(at documentURL: URL) throws 
   let rootDirectoryURL = documentURL.deletingLastPathComponent()
   let items = try FileManager.default.contentsOfDirectory(at: rootDirectoryURL, 
                                      includingPropertiesForKeys: [], 
                                      options: []) // Return error `permission denied`
   ... other code for init document


附: URL.startAccessingSecurityScopedResource 也不起作用。

【问题讨论】:

【参考方案1】:

如果想知道根目录下保存了哪些文件:

 override func viewDidLoad() 
    super.viewDidLoad()

 let fileName = getDocumentsDirectory().appendingPathComponent("fileNameSave")
    print(fileName)
    // Name of saved path

    do 
        try  .write(to: fileNameZip)
     catch 
        print("error")
    



func getDocumentsDirectory() -> URL 
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    return paths[0]

【讨论】:

我的意思是,我使用 UIDocumentBrowserViewController 之类的文档数据源。当我获取文档时,我想知道根目录所选文档中包含多少项。 也许我误解了你的想法。你的问题我从来没有尝试过,我只是通过......developer.apple.com/documentation/uikit/view_controllers/…

以上是关于为啥 NSFileManager 不能与 UIDocumentBrowserViewController 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 NSFileManager 找不到这些 png 文件?

当路径正确时,为啥 NSFIleManager -fileExistsAtPath 找不到现有文件?

NSFileManager 是不是将修改日期等元数据与文件一起复制?

Foundation框架 之 NSFileManager 与 copy & mutableCopy

Foundation框架 之 NSFileManager 与 copy & mutableCopy

NSFileManager类与文件操作