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("Write image to directory")
// get the documents directory url
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
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)
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
}
</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("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 {}
}
</code></pre>
<p>使用以下功能从存储的文件夹中删除图像:</p>
<pre><code>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")
}
}
</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("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{
}
}
</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]