如果我NSCachesDirectory
在我的应用程序中以编程方式下载文件,是否也可以以编程方式删除文件?
问问题
9583 次
4 回答
7
从 Directory获取 File 的完整路径可能有很多方法,以下是其中一种。
NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *mainPath = [myPathList objectAtIndex:0];
mainPath = [mainPath stringByAppendingPathComponent:DirectoryName];
这里mainPath是文件的完整路径。
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
BOOL fileExists = [fileManager fileExistsAtPath:mainPath];
if (fileExists)
{
BOOL success = [fileManager removeItemAtPath:mainPath error:&error];
if (!success) NSLog(@"Error: %@", [error localizedDescription]);
}
于 2013-02-25T10:32:25.033 回答
5
我认为这个片段应该适合你:
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSArray *fileArray = [fileMgr contentsOfDirectoryAtPath:directory error:nil];
for (NSString *filename in fileArray) {
[fileMgr removeItemAtPath:[directory stringByAppendingPathComponent:filename] error:NULL];
}
于 2013-02-25T10:38:12.950 回答
3
结合 anurag 和 iPatel
我们得到这个最终代码,它将从缓存目录中清除所有内容
NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *mainPath = [myPathList objectAtIndex:0];
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSArray *fileArray = [fileMgr contentsOfDirectoryAtPath:mainPath error:nil];
for (NSString *filename in fileArray) {
[fileMgr removeItemAtPath:[mainPath stringByAppendingPathComponent:filename] error:NULL];
}
于 2014-11-09T23:49:45.157 回答
1
如果您想专门删除UIWebView
缓存,那么这可能会有所帮助:
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
if([[cookie domain] isEqualToString:someNSStringUrlDomain]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
}
于 2013-04-01T12:34:43.633 回答