De nos jours (2016), Apple recommande de plus en plus d'utiliser l'API liée aux URL de NSURL, NSFileManageretc.
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 sqlitefichier
let databaseURL = documentDirectoryURL.URLByAppendingPathComponent("MyDataBase.sqlite")
Vérifiez maintenant si le fichier existe avec checkResourceIsReachableAndReturnErrorof NSURL.
let fileExists = databaseURL.checkResourceIsReachableAndReturnError(nil)
Si vous avez besoin de l'erreur, passez le NSErrorpointeur 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")
checkResourceIsReachableest 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