Ios NSFileManager:正在尝试删除文件,但它说它们没有';不存在
我正在尝试删除缓存目录中的文件。然而,当我试图删除单个文件夹时,我得到一个错误,说该文件不存在,尽管我知道它存在。因此,我尝试使用for循环删除caches目录中的所有文件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
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,并允许您提供跳过隐藏文件的选项