2012-03-12 3 views
3

Я использовал код для удаления файлов временного каталога при использовании устройства.Как удалить файлы временного каталога fron iOS?

-(void) clearAllTempFiles { 
    NSString *path = NSTemporaryDirectory(); 
    if ([path length] > 0) 
    { 
     NSError *error = nil; 
     NSFileManager *fileManager = [NSFileManager defaultManager]; 

     BOOL deleted = [fileManager removeItemAtPath:path error:&error]; 

     if (deleted != YES || error != nil) 
     { 

     } 
     else{ 
      // Recreate the Documents directory 
      [fileManager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:&error]; 
     } 

    } 
} 

не работает нормально? это правильный код для удаления файлов из временного каталога?

pls help me?

+0

мой с ответом на тренажерах .... –

+0

вы не имеете разрешения на удаление файлов из временного каталога. разрешение на эту папку - drwx ------, поэтому вы не удаляете файлы. – hchouhan02

ответ

6

Вы можете получить имя каталога TMP на вашем компьютере, используя это в коде:

Код:

(void)cacheDirectory { 

    NSString *tempPath = NSTemporaryDirectory(); 

    NSLog(@"Temp Value = %@", items); 
} 

Вызвать метод от куда вы хотите.

Это вернет имя папки tmp, затем в finder do (cmd-shift-G) и вставьте ответ, который вы получили из окна консоли.

Следующее очистит каталог TMP, используемый симулятором.

Код:

NSString *tempPath = NSTemporaryDirectory(); 
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:tempPath]; 
NSArray *onlyJPGs = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.jpg'"]]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 

if (onlyJPGs) { 
    for (int i = 0; i < [onlyJPGs count]; i++) { 
    NSLog(@"Directory Count: %i", [onlyJPGs count]); 
    NSString *contentsOnly = [NSString stringWithFormat:@"%@%@", tempPath, [onlyJPGs objectAtIndex:i]]; 
    [fileManager removeItemAtPath:contentsOnly error:nil]; 
} 

Приведенный выше код удаляет только JPGs из каталога, так что если вы хотите, чтобы очистить что-нибудь еще, то изменить его.

+0

PLZ разработать ур вопрос .......... –

+0

Это происходит потому, что ваше приложение работает в фоновом режиме. если вы не хотите запускать приложение в фоновом режиме в файле info.plist, «Приложение не работает в фоновом режиме» = ДА – hchouhan02

+0

моя проблема: у меня есть приложение на 3 страницы, когда я остаюсь на одной странице (loginscreen) на странице и i нажмите кнопку «домой». Снова я нажимаю значок своего приложения на плацдарме, теперь я не хочу показывать loginscreen, я хочу пойти на другой экран (второй экран). Но я получил первый экран (loginscreen), который появляется на фоновом экране, который второй экран получает для этой цели, я использовал файл cleanallTempdirectoryfile? – sreenivas