Here`s mon code:Swift. Impossible d'enregistrer le fichier dans DocumentDirectory. Qu'est-ce qui ne va pas?
let fileName = "someFileName"
func saveDataToFile(urlStr:String){
let url = NSURL(string: urlStr)
var data:NSData!
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let directory = paths[0]
let filePath = directory.stringByAppendingPathComponent(self.fileName)
print(filePath)//prints /Users/.../Library/Developer/CoreSimulator/Devices/1013B940-6FAB-406B-96FD-1774C670A91E/data/Containers/Data/Application/2F7139D6-C137-48BF-96F6-7579821B17B7/Documents/fileName
let fileManager = NSFileManager.defaultManager()
data = NSData(contentsOfURL: url!)
print(data) // prints a lot of data
if data != nil{
fileManager.createFileAtPath(filePath, contents: data, attributes: nil)
}
}
Maintenant, je veux lire ces données:
func readDataFromFile(){
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let directory = paths[0]
let filePath = directory.stringByAppendingPathComponent(self.fileName)
print(filePath) // prints the same path
let fileManager = NSFileManager.defaultManager()
if fileManager.fileExistsAtPath(filePath){
data = fileManager.contentsAtPath(filePath)
}else{
print("*****BAD*****") // always prints this which means that file wasn`t created
}
}
What`s mal avec la première func? Quelle est la bonne façon d'enregistrer un fichier dans DocumentDirectory?
'.createFileAtPath' renvoie un booléen indiquant si l'opération s'est terminée avec succès, vous devriez vérifier cela. – Moritz
J'ai vérifié maintenant et il retourne 'false' ce qui n'est pas une surprise. D'autres suggestions plébiscitent? – Elena
Eh bien, maintenant que nous savons que le deuxième extrait n'est pas le coupable, nous pouvons nous concentrer sur le premier. En le regardant, je suppose que 'filePath' n'est pas correct. Mais c'est juste ma conjecture, * vous * devez déboguer un peu plus. – Moritz