Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSFileManager:正在尝试删除文件,但它说它们没有';不存在_Ios_Swift_Nsfilemanager_Foundation - Fatal编程技术网

Ios NSFileManager:正在尝试删除文件,但它说它们没有';不存在

Ios NSFileManager:正在尝试删除文件,但它说它们没有';不存在,ios,swift,nsfilemanager,foundation,Ios,Swift,Nsfilemanager,Foundation,我正在尝试删除缓存目录中的文件。然而,当我试图删除单个文件夹时,我得到一个错误,说该文件不存在,尽管我知道它存在。因此,我尝试使用for循环删除caches目录中的所有文件 do { for file in try NSFileManager.defaultManager().contentsOfDirectoryAtPath(cacheFolderPath) where !file.hasPrefix("."){ try NSFileManager.de

我正在尝试删除缓存目录中的文件。然而,当我试图删除单个文件夹时,我得到一个错误,说该文件不存在,尽管我知道它存在。因此,我尝试使用for循环删除caches目录中的所有文件

do {
        for file in try NSFileManager.defaultManager().contentsOfDirectoryAtPath(cacheFolderPath) where !file.hasPrefix("."){
            try NSFileManager.defaultManager().removeItemAtPath(file)
        }
        print("Cache cleared successfully.")
    }
    catch let error as NSError {
        print(error.localizedDescription)
        if let reason = error.localizedFailureReason {
            print(reason)
        }
    }
}
但是,此代码打印以下内容:

无法删除“类别缩略图”。
该文件不存在


很明显,它确实存在,这是通过
contentsOfDirectoryAtPath
方法发现的!它怎么可能不存在呢?有人知道这里发生了什么,以及我如何清除缓存吗?

目录路径的结果是给定文件夹中的文件列表。但这些结果本身并不是一条完整的路径

要删除每个
文件
,需要将
文件
附加到
缓存文件夹路径
。然后将该完整路径传递给
removitematpath


另一种解决方案是使用
NSFileManager
的其他文件夹枚举方法之一,该方法返回完整URL,并允许您提供跳过隐藏文件的选项。

目录路径
的结果是给定文件夹中的文件列表。但这些结果本身并不是一条完整的路径

要删除每个
文件
,需要将
文件
附加到
缓存文件夹路径
。然后将该完整路径传递给
removitematpath

另一种解决方案是使用
NSFileManager
的其他文件夹枚举方法之一,该方法返回完整的URL,并允许您提供跳过隐藏文件的选项