2017-03-08 78 views
0

我想每1分钟清除默认缓存目录中的所有图像,但缓存文件没有扩展名以指定它们的类型,我不知道如何删除像PNG(而不是其他数据)的图像。 这是示例代码我在这个网站看到:如何清除缓存目录中的图像?

 let fileManager = FileManager.default 
    let documentsUrl = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first! as NSURL 
    let documentsPath = documentsUrl.path 

    do { 
     if let documentPath = documentsPath 
     { 
      let fileNames = try fileManager.contentsOfDirectory(atPath: "\(documentPath)") 
      print("all files in cache: \(fileNames)") 
      for fileName in fileNames { 

       if (fileName.hasSuffix(".png")) 
       { 
        let filePathName = "\(documentPath)/\(fileName)" 
        try fileManager.removeItem(atPath: filePathName) 
       } 
      } 

      let files = try fileManager.contentsOfDirectory(atPath: "\(documentPath)") 
      print("all files in cache after deleting images: \(files)") 
     } 

    } catch { 
     print("Could not clear temp folder: \(error)") 
    } 

回答

1

可能性:

你可以使用的ImageIO删除它之前测试每个文件,但是这将意味着取出前阅读。它会替换后缀测试BUT

因为它会真的不必要昂贵恕我直言,我甚至不会提供代码。

好方法:

=>重命名你的形象有一个前缀或后缀,因此您可以通过名称(N电话)

好办法识别它们

=>放在一个图像单独的文件夹,只需删除文件夹来清除它们。 (1 call)

+0

如何重命名默认缓存系统将要缓存的映像? – Omnia

+0

如果我把它们放在一个单独的文件夹中,如果发生内存警告,iOS可以删除它们吗?或者我应该手动处理它们? – Omnia

+0

ios中默认缓存文件夹中的图像除外,什么是缓存?还有别的事吗? – Omnia