使用覆盖将图像保存到文档目录

问题描述 投票:-1回答:1

我正在使用设备相机拍摄照片并将其保存到具有特定文件名的Documents目录中。但是,如果已存在同名文件,则不保存该文件。如何简单地覆盖同名文件,或者如果确实存在,先删除它?我更喜欢第一种选择。

let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

// Create the destination file URL for saving
let fileURL = documentsDirectory.appendingPathComponent(photoFilename)

if let data = image.jpegData(compressionQuality: 1.0),
    !FileManager.default.fileExists(atPath: fileURL.path) {
    do {
        // Write the image data
        try data.write(to: fileURL)
    } catch {
        let alert = UIAlertController(title: "OOPS!", message: "Couldnt save the image!", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
        self.present(alert, animated: true)
    }
}
print("not saved")
swift photo nsfilemanager
1个回答
0
投票

write(to默认覆盖数据,但是通过检查文件是否存在来阻止它。

只需删除支票即可

let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

// Create the destination file URL for saving
let fileURL = documentsDirectory.appendingPathComponent(photoFilename)

if let data = image.jpegData(compressionQuality: 1.0) {
    do {
        // Write the image data
        try data.write(to: fileURL)
    } catch {
        let alert = UIAlertController(title: "OOPS!", message: "Couldnt save the image!", preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
         self.present(alert, animated: true)
    }
} else {
    print("not saved")
}
© www.soinside.com 2019 - 2024. All rights reserved.