iOS 中 FileManager 的内容在哪里?

Posted

技术标签:

【中文标题】iOS 中 FileManager 的内容在哪里?【英文标题】:Where are the contents of FileManager in iOS? 【发布时间】:2019-05-18 09:02:10 【问题描述】:

我使用下面的 swift 代码在我的 ios 应用程序中创建了一个文件。

let localFileName = String("file.rtf")
let text = String(“file contents”)

if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first 

    let fileURL = dir.appendingPathComponent(localFileName)

    do 
        try text.write(to: fileURL, atomically: false, encoding: .utf8)
    
    catch 

    do 
        let text2 = try String(contentsOf: fileURL, encoding: .utf8)

        print("Read from file \(text2)")
    
    catch 



此代码正在运行,返回 true 并且正在打印创建文件的内容,表明文件已成功创建。 问题是在哪里可以找到创建的文件?那个文件在哪里?在没有代码的情况下在 iPhone 中哪里可以找到该文件?

【问题讨论】:

使用 Xcode 的“设备”下载“容器”。见***.com/a/38064225/1271826 【参考方案1】:

假设您要列出文档目录中的文件:

func listFiles() 
       let fileManager = FileManager.default
       let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
       do 
           guard let items = try fileManager.contents(atPath: path) else 
               print("no files found")
               return
           
           for item in items 
               print("File: \(item)")
           
       
       catch 
           print("error")
       
   

【讨论】:

我是说,在 iPhone 中哪里可以找到保存的文件,无需代码。 看看这个:***.com/a/25305782/784715 你可以使用 iFunbox 或 iTunes 来查看这些文件【参考方案2】:

iOS 中的可用目录

static let documents = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
static let library = try? FileManager.default.url(for: .libraryDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
static let downloads = try? FileManager.default.url(for: .downloadsDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
static let user = try? FileManager.default.url(for: .userDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
static let cache = try? FileManager.default.url(for: .cachesDirectory, in: .userDomainMask, appropriateFor: nil, create: false)

【讨论】:

以上是关于iOS 中 FileManager 的内容在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

iOS - FileManager 扩展的最佳实践

ios FileManager在重建应用程序时丢失存储的数据

iOS 文件操作:沙盒(SandBox)文件操作(FileManager)程序包(NSBundle)

FileManager 文件将保存多少数据?

iOS 13 - FileManager url(forPublishingUbiquitousItemAt:expiration:) 不再工作

读取文件内容不使用 FileManager