如何清除缓存目录中的图像?

时间:2017-03-08 13:38:42

标签: ios swift image caching

我想每隔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 个答案:

答案 0 :(得分:1)

可能性:

您可以在删除之前使用ImageIO测试每个文件,但这意味着在删除它之前将其读取。它取代后缀BUT的测试

因为它实际上是不必要的昂贵恕我直言,我甚至不提供代码。

好的方式:

=>重命名您的图像以具有后缀或前缀,以便您可以通过名称(n次调用)识别它们

好方法

=>将图像放在一个单独的文件夹中,然后删除该文件夹以清除它们。 (1电话)

相关问题