Текстовый файл не создается в папке applicationSupport в Swift - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь ввести строчку в текстовый файл, но функция createFile (путь: содержание: атрибуты) возвращает 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")
    }
}

Должно быть сообщение "Файл создан", а вместо этого "Файл не создан"

1 Ответ

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

Помимо неправильного 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")
}
...