6

NSCachesDirectoryアプリでプログラムでファイルをダウンロードした場合、プログラムでファイルを削除することもできますか?

4

4 に答える 4

7

File から Directoryのフル パスを取得する方法は多数ある可能性があります。以下はその 1 つです。

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 に答える