如果存在则快速附加到文件,否则创建文件

标签 swift file

<分区>

我想将一个字符串写入一个文件。如果该文件不存在,则应创建它。 如果是,则应附加字符串。

我试过:

    let data = text.data(using: String.Encoding.utf8)
    let filemgr = FileManager.default
    let path = filemgr.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last?.appendingPathComponent("out.txt")
    if !filemgr.fileExists(atPath: (path?.absoluteString)!) {
        filemgr.createFile(atPath: (path?.absoluteString)!, contents: data, attributes: nil)
    } else {
        var file = FileHandle(forReadingAtPath: (path?.absoluteString)!)
        let databuffer = String(describing: file?.readDataToEndOfFile())
        file = FileHandle(forWritingAtPath: (path?.absoluteString)!)
        if file != nil {

            file?.seek(toFileOffset: 10)
            file?.write(data!)
            file?.closeFile()
        }
    }

到目前为止,文件似乎还没有创建,因为它每次都跳转到 createFile。我做错了什么?

最佳答案

使用 (path?.path)! 而不是 (path?.absoluteString)!

关于如果存在则快速附加到文件,否则创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49915548/

相关文章:

c# - 多个 FileSystemWatcher 是个好主意吗?

ios - Swift 中的 Adob​​e Creative SDK

ios - 视频修剪器范围 slider 的触摸(框) "off"

ios - 如何 swift 将超时设置为 NSTimer?

swift - 使用自定义的 setter/getter 并初始化属性以实现快速日期

java - 这个 Java 片段会关闭文件吗?

file - Sublime Text 2 - 文件不会更新

c - 文件末尾后有哪些字符?

Java - 逐行读取文件直到文件末尾

swift - 滑动删除不适用于计时器