• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 将图像保存到文件目录

[复制链接]
菜鸟教程小白 发表于 2022-12-11 22:07:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试使用文件目录保存图像,但我无法在没有错误提示的情况下保存图像

No Such Folder.

这是我的代码,我不知道哪里出错了

// Write image to directory
func writeImageToPath(_ path: String, image: UIImage) {
    print("Write image to directory")

    // get the documents directory url
    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

    let folderURL = documentsURL.appendingPathComponent("upload")

    if !FileManager.default.fileExists(atPath: folderURL.path) {
        do {
            try FileManager.default.createDirectory(atPath: folderURL.path, withIntermediateDirectories: true, attributes: nil)
        }
        catch {}
    }

    let fileURL = folderURL.appendingPathComponent(path)
    let data = UIImageJPEGRepresentation(image, 0.9)
    do {
        try data!.write(to: fileURL)
    }
    catch {}

}

// load image from directory
func loadImageFromPath(_ path: String) -> UIImage? {

    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

    let folderURL = documentsURL.appendingPathComponent("upload")

    let fileURL = folderURL.appendingPathComponent(path)

    if FileManager.default.fileExists(atPath: fileURL.path) {
        //Get Image And upload in server
        print("fileURL.path \(fileURL.path)")

        do{
            let data = try Data.init(contentsOf: fileURL)
            let image = UIImage(data: data)
            return image
        }catch{
            print("error getting image")
        }
    } else {
        print("No image in directory")
    }

    return nil
}

如何正确保存和加载目录中的图像?



Best Answer-推荐答案


罗,

我在大多数项目中都遵循以下代码片段:

要将图像保存在文件夹中,请使用以下函数:

func addImageInFolder(image : UIImage,filename:String){
    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
    let folderURL = documentsURL.appendingPathComponent("upload")
    if !FileManager.default.fileExists(atPath: folderURL.path) {
        do {
            try FileManager.default.createDirectory(atPath: folderURL.path, withIntermediateDirectories: true, attributes: nil)
        }
        catch {}
    }
    let fileURL = folderURL.appendingPathComponent(filename)
    let data = UIImageJPEGRepresentation(image, 0.9)
    do {
        try data!.write(to: fileURL)
    }
    catch {}
}

使用以下功能从存储的文件夹中删除图像:

let fileURL = documentsURL.appendingPathComponent("upload/\(filename ?? "")")

            if FileManager.default.fileExists(atPath: fileURL.absoluteString){
                do{
                    try FileManager.default.removeItem(at: fileURL)
                }catch{
                    print("\(sigStr ?? "") delete file delete error")
                }

            }

从文件夹中获取图片:

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
                //TODO: -Get dateTime For get image URL-
                let fileURL = documentsURL.appendingPathComponent("upload/\(fileName)")
                if FileManager.default.fileExists(atPath: fileURL.path) {
                    //Get Image And upload in server
                    print("fileURL.path \(fileURL.path)")

                    do{
                        let data = try Data.init(contentsOf: fileURL)
                        imageView.image = UIImage(data: data)
                    }catch{

                    }
                }

关于ios - 将图像保存到文件目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54545869/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap