Hoy en día (2016) Apple recomienda cada vez más usar la API relacionada con URL de NSURL
, NSFileManager
etc.
Para obtener el directorio de documentos en iOS y Swift 2 use
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory,
inDomain: .UserDomainMask,
appropriateForURL: nil,
create: true)
El try!
es seguro en este caso porque se garantiza que este directorio estándar existe.
Luego agregue el componente de ruta apropiado, por ejemplo, un sqlite
archivo
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Ahora compruebe si el archivo existe con checkResourceIsReachableAndReturnError
de NSURL
.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Si necesita el error, pase el NSError
puntero al 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 puede lanzar
do {
let fileExists = try databaseURL.checkResourceIsReachable()
// handle the boolean result
} catch let error as NSError {
print(error)
}
Para considerar solo el valor de retorno booleano e ignorar el error, utilice el operador de fusión nula
let fileExists = (try? databaseURL.checkResourceIsReachable()) ?? false