Как создать файл в папке документов, если он не существует? - PullRequest
0 голосов
/ 27 января 2019

У меня есть следующий код, который пишет в конец файла. Тем не менее, как мне изменить поведение так, чтобы он создавал «output.txt», если он не существует?

Заранее спасибо!

func writeFile(){

    let str = "\n" + nominationKeyForWhenCellSelected! + "," + "1"
    let datafromString = str.data(using: String.Encoding.utf8)
    let filename = getDocumentsDirectory().appendingPathComponent("output.txt")


    do {
        let fileHandle = try FileHandle(forWritingTo: filename)
        fileHandle.seekToEndOfFile()
        fileHandle.write(datafromString!)

    } catch {

    }
}

1 Ответ

0 голосов
/ 27 января 2019

Используйте FileManager, чтобы проверить, существует файл или нет.Если нет, просто запишите данные, в противном случае добавьте, как вы делаете.Но не забудьте закрыть дескриптор файла.

do {
    if FileManager.default.fileExists(atPath: filename.path) {
        let fileHandle = try FileHandle(forWritingTo: filename)
        fileHandle.seekToEndOfFile()
        fileHandle.write(datafromString!)
        fileHandle.closeFile()
    } else {
        datafromString.write(to: filename)
    }
} catch {
    print(error)
}
...