De nos jours (2016), Apple recommande de plus en plus d'utiliser l'API liée aux URL de NSURL
, NSFileManager
etc.
Pour obtenir le répertoire des documents dans iOS et Swift 2, utilisez
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory,
inDomain: .UserDomainMask,
appropriateForURL: nil,
create: true)
Le try!
est sûr dans ce cas car ce répertoire standard est garanti d'exister.
Ajoutez ensuite le composant de chemin approprié, par exemple un sqlite
fichier
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Vérifiez maintenant si le fichier existe avec checkResourceIsReachableAndReturnError
of NSURL
.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Si vous avez besoin de l'erreur, passez le NSError
pointeur sur le paramètre.
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 marqué comme peut jeter
do {
let fileExists = try databaseURL.checkResourceIsReachable()
// handle the boolean result
} catch let error as NSError {
print(error)
}
Pour ne considérer que la valeur de retour booléenne et ignorer l'erreur, utilisez l'opérateur nil-coalescing
let fileExists = (try? databaseURL.checkResourceIsReachable()) ?? false