我想将多个图像/视频保存到文档目录中供以后使用,我得到了如何保存单个图像的要点,但我不知道如何保存多个图像并检索它们。如何更改此代码以检索保存在文件所在目录中的所有对象?我使用两个视图控制器来执行此操作。
以下是保存图片的代码:
NSData *videoData = [NSData dataWithContentsOfFile:moviePath];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
filePath = [documentsPath stringByAppendingPathComponent:@"image.png"]; //Add the file name
[videoData writeToFile:filePath atomically:YES]; //Write the file
以下是检索图像的代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"image.png"];
UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
代码的唯一问题是这只会使图像位于第0位,而我希望获得所有位置。
答案 0 :(得分:0)
您需要为每个文件指定一个唯一的名称。
然后以某种方式跟踪名称。
您还可以使用NSFileNamager
方法contentsOfDirectoryAtPath:
获取目录中的文件列表。
答案 1 :(得分:0)
这是我在数组中保存多个图像的代码
let defaults = UserDefaults.standard
var array = NSMutableArray()
let i = Int(arc4random())
let str = String(i).appending(".png")
array.insert(str, at: 0)
defaults.set(array, forKey: "me")
defaults.synchronize()
let fileManager = FileManager.default
let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent(str)
print(paths)
let imageData = UIImagePNGRepresentation(YourImage)
fileManager.createFile(atPath: paths as String, contents: imageData, attributes: nil)
答案 2 :(得分:0)
用于检索图像
let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask
let array1 = defaults.value(forKey: "me") as? NSArray as Array?
let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
if let dirPath = paths.first
{
let strPic = (array1?[indexPath.row] as! String)
imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent(strPic! as String) as NSURL
cell.imgView.image = UIImage(contentsOfFile: imageURL.path!)