为啥 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