在 Swift 中将文本附加到文档文件



我在将文本写入文件文档时遇到问题。 这是我的源代码:

func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
return paths[0]
}
let fileName = getDocumentsDirectory().appendingPathComponent("LogFile.txt")
do {
try KML.soapRequest.xml.write(to: fileName, atomically: true, encoding: String.Encoding.utf8)
} catch {
print("Failed save")
}

我想将文本插入文件"LogFile.txt",我是快速语言的新手。

感谢您的所有帮助。

我在这里发现了你的问题:在 Swift 中将文本或数据附加到文本文件

  • 如果文件存在,将追加到文本文件。
  • 如果文本文件不存在,将创建一个新文件。

    class Logger {
    static var logFile: URL? {
    guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return nil }
    let formatter = DateFormatter()
    formatter.dateFormat = "dd-MM-yyyy"
    let dateString = formatter.string(from: Date())
    let fileName = "(dateString).log"
    return documentsDirectory.appendingPathComponent(fileName)
    }
    static func log(_ message: String, functionName: String = #function, filename: String = #file, line: Int = #line) {
    guard let logFile = logFile else {
    return
    }
    let className = filename.components(separatedBy: "/").last
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS "
    let timestamp = formatter.string(from: Date())
    guard let data = ("[(timestamp)]  [(className ?? "")] (functionName)(line): (message)" + "n").data(using: String.Encoding.utf8) else { return }
    if FileManager.default.fileExists(atPath: logFile.path) {
    if let fileHandle = try? FileHandle(forWritingTo: logFile)          {
    fileHandle.seekToEndOfFile()
    fileHandle.write(data)
    fileHandle.closeFile()
    }
    } else {
    try? data.write(to: logFile, options: .atomicWrite)
    }
    }
    }
    

最新更新