J'enregistre des files dans un directory de document dans swift 3 avec ce code:
fileManager = FileManager.default // let documentDirectory = fileManager?.urls(for: .documentDirectory, in: .userDomainMask).first as Ssortingng var path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as Ssortingng path = path + name let image = #imageLiteral(resourceName: "Notifications") let imageData = UIImageJPEGRepresentation(image, 0.5) let bool = fileManager?.createFile(atPath: path, contents: imageData, atsortingbutes: nil) print("bool is \(bool)") return true
Mais comme vous pouvez le voir, je n'utilise pas filemanager
pour get le path du directory du document car filemanager
ne donne que l'URL et non la string.
Des questions:
S'il vous plaît pensez l'inverse.
URL
est la méthode recommandée pour gérer les paths d'access aux files car elle contient toutes les methods pratiques pour l'ajout et la suppression de composants et d'extensions de path d'access, plutôt que la Ssortingng
dont Apple a supprimé ces methods.
Vous êtes découragé de concaténer des paths comme path = path + name
. Il est sujet aux erreurs car vous êtes responsable de tous les séparateurs de paths obliques.
De plus, vous n'avez pas besoin de créer un file avec FileManager
. Data
ont une méthode pour écrire des données sur le disque.
let fileManager = FileManager.default do { let documentDirectory = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor:nil, create:false) let fileURL = documentDirectory.appendingPathComponent(name) let image = #imageLiteral(resourceName: "Notifications") if let imageData = UIImageJPEGRepresentation(image, 0.5) { try imageData.write(to: fileURL) return true } } catch { print(error) } return false
func copyandpast () {
var path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true); let dbpath :NSSsortingng = path[0] as NSSsortingng; let strdbpath = dbpath.ssortingngs(byAppendingPaths: ["mydb.db"])[0] ; print(strdbpath); let fmnager = FileManager.default; if !fmnager.fileExists(atPath: strdbpath) { let local = Bundle.main.path(forResource: "mydb", ofType: "db"); do { try fmnager.copyItem(atPath: local!, toPath: strdbpath) }catch{ } } }