【问题标题】:Text File is not being created in applicationSupport folder in Swift没有在 Swift 的 applicationSupport 文件夹中创建文本文件
【发布时间】:2019-06-19 17:33:42
【问题描述】:

我正在尝试将字符串输入到文本文件中,但函数 createFile(path:contents:attributes) 返回 false,表明该文件没有被创建。我厌倦了在应用程序支持目录中创建,但即使我尝试使用 documentDirecorty,我也会得到相同的结果,表明文件没有被创建。不知道我做错了什么。

let filePin = "userPass.txt"
let _string = "password"
let encrypted = _string.toHexString()
let fileMngr = FileManager.default
let path = fileMngr.urls(for: FileManager.SearchPathDirectory.applicationSupportDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last?.appendingPathComponent(self.filePin)
if let data = encrypted.data(using: String.Encoding.utf8) {
    if fileMngr.createFile(atPath: (path?.absoluteString)!, contents: data, attributes: nil){
        print("The file was created")
    }
    else {
        print("File was not created")
    }
}

应该得到“文件已创建”,而是得到“文件未创建”

【问题讨论】:

    标签: ios swift file nsfilemanager


    【解决方案1】:

    除了错误的 API absoluteString 之外,应用程序支持文件夹可能不存在。

    这个比较靠谱

    let string = "password"
    let encrypted = string.toHexString()
    let fileManager = FileManager.default
    do {
        let applicationSupportDirectory = try fileManager.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
        let fileUrl = applicationSupportDirectory.appendingPathComponent(self.filePin)
        let data = Data(encrypted.utf8)
        try data.write(to: fileUrl)
        print("The file was created")
    } catch {
        print(error, "File was not created")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 2020-06-05
      • 2015-01-11
      • 2021-03-30
      • 2020-03-03
      相关资源
      最近更新 更多