Hoje em dia (2016) Apple recomenda mais e mais para usar a API relacionada URL de NSURL
, NSFileManager
etc.
Para obter o diretório de documentos no iOS e no Swift 2, use
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory,
inDomain: .UserDomainMask,
appropriateForURL: nil,
create: true)
O try!
é seguro neste caso, porque este diretório padrão é garantido que existe.
Em seguida, acrescente o componente de caminho apropriado, por exemplo, um sqlite
arquivo
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Agora verifique se o arquivo existe com checkResourceIsReachableAndReturnError
of NSURL
.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Se você precisar do erro, passe o NSError
ponteiro para o parâmetro
var error : NSError?
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(&error)
if !fileExists { print(error) }
Swift 3+:
let documentDirectoryURL = try! FileManager.default.url(for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true)
let databaseURL = documentDirectoryURL.appendingPathComponent("MyDataBase.sqlite")
checkResourceIsReachable
está marcado como pode jogar
do {
let fileExists = try databaseURL.checkResourceIsReachable()
// handle the boolean result
} catch let error as NSError {
print(error)
}
Para considerar apenas o valor de retorno booleano e ignorar o erro, use o operador nil-coalescing
let fileExists = (try? databaseURL.checkResourceIsReachable()) ?? false