如果存在swift附加到文件或否则创建文件

时间:2018-04-19 07:50:21

标签: swift file

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

我试过了:

    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。我做错了什么?

1 个答案:

答案 0 :(得分:2)

使用(path?.path)!代替(path?.absoluteString)!