菜鸟教程小白 发表于 2022-12-11 22:07:12

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


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

<blockquote>
<p>No Such Folder.</p>
</blockquote>

<p>这是我的代码,我不知道哪里出错了</p>

<pre><code>// Write image to directory
func writeImageToPath(_ path: String, image: UIImage) {
    print(&#34;Write image to directory&#34;)

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

    let folderURL = documentsURL.appendingPathComponent(&#34;upload&#34;)

    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) -&gt; UIImage? {

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

    let folderURL = documentsURL.appendingPathComponent(&#34;upload&#34;)

    let fileURL = folderURL.appendingPathComponent(path)

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

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

    return nil
}
</code></pre>

<p>如何正确保存和加载目录中的图像? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>罗,</p>

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

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

<pre><code>func addImageInFolder(image : UIImage,filename:String){
    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let folderURL = documentsURL.appendingPathComponent(&#34;upload&#34;)
    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 {}
}
</code></pre>

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

<pre><code>let fileURL = documentsURL.appendingPathComponent(&#34;upload/\(filename ?? &#34;&#34;)&#34;)

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

            }
</code></pre>

<p>从文件夹中获取图片:</p>

<pre><code>let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
                //TODO: -Get dateTime For get image URL-
                let fileURL = documentsURL.appendingPathComponent(&#34;upload/\(fileName)&#34;)
                if FileManager.default.fileExists(atPath: fileURL.path) {
                  //Get Image And upload in server
                  print(&#34;fileURL.path \(fileURL.path)&#34;)

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

                  }
                }
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 将图像保存到文件目录,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/54545869/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/54545869/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 将图像保存到文件目录