将图像写入目录中的文件

时间:2016-07-21 22:25:16

标签: ios swift xcode nsfilemanager writetofile

将图像文件写入Xcode中的目录时出错。函数data.writeToFile返回错误。这是我想要做的:

获取文件路径:

func getPath(fileName: String) -> String {
        let documentURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
        let folder = "sampleDirectory"
        return documentURL.URLByAppendingPathComponent(folder).URLByAppendingPathComponent(fileName).path!
    }

保存图片

func saveImage(image: UIImage, path: String) -> Bool {
        let pngImageData = UIImagePNGRepresentation(image)
        do {
            let success = try pngImageData?.writeToFile(path, options: NSDataWritingOptions.init(rawValue: 0))
        } catch {
            print(error)
        }
        return false
    }

但是,有一个错误说:

NSPOSIXErrorDomain - code : 2

有谁知道问题可能是什么?

EDIT 我在哪里调用代码:

let fileName = "first_image"
let imagePath = self.getPath(fileName)
let result = self.saveImage(processedImage, path: imagePath)

processedImage的类型为UIImage!

1 个答案:

答案 0 :(得分:1)

尝试创建目录" sampleDirectory"如果它不存在或不使用子目录。 您可以检查目录是否存在:

if !NSFileManager.defaultManager().fileExistsAtPath(path) { // create missing directories try! NSFileManager.defaultManager().createDirectoryAtPath(foo, withIntermediateDirectories: true, attributes: nil) }

您可能还想先使用首先写入辅助文件的NSDataWritingOptions.DataWritingAtomic选项,然后在没有错误的情况下交换文件