2016-06-08 2 views
0

Я хочу удалить изображение для Справочника Документов. У изображения есть это соглашение о присвоении имен 2016-06-08 12:24:55.897image.jpg.Удалить файл с пространством в имени файла ios

Код сниппета

-(void) removeImageAtPath:(NSString *) filePath{ 
NSError *error; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
BOOL success = [fileManager removeItemAtPath:filePath error:&error]; 
if (success) { 
    NSLog(@"Image Successfully Deleted"); 
} 
else{ 
    NSLog(@"Could not delete file -:%@ ",[error localizedDescription]); 
} 
} 

Код ошибки NSCocoaErrorDomain Code = 4

Я знаю, что ошибка возникает, когда файл не найден. Что происходит из-за соглашения об именах, которое я использовал. Я не могу изменить соглашение. Есть ли способ удалить файл.

ответ

0

этот код удалить непосредственно имя файла, в

- (void)removeImage:(NSString *)filename 
    { 
     NSFileManager *fileManager = [NSFileManager defaultManager]; 
     NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

     NSString *filePath = [documentsPath stringByAppendingPathComponent:filename]; 
     NSError *error; 
     BOOL success = [fileManager removeItemAtPath:filePath error:&error]; 
     if (success) { 
      UIAlertView *removedSuccessFullyAlert = [[UIAlertView alloc] initWithTitle:@"Congratulations:" message:@"Successfully removed" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil]; 
      [removedSuccessFullyAlert show]; 
     } 
     else 
     { 
      NSLog(@"Could not delete file -:%@ ",[error localizedDescription]); 
     } 
    } 

другой разумно использовать этот код

NSError *error; 
if ([[NSFileManager defaultManager] isDeletableFileAtPath:path]) { 
    BOOL success = [[NSFileManager defaultManager] removeItemAtPath:path error:&error]; 
    if (!success) { 
     NSLog(@"Error removing file at path: %@", error.localizedDescription); 
    } 
} 

пожалуйста, вы можете попробовать этот код

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSError *error; 
BOOL fileExists = [fileManager fileExistsAtPath:path]; 
NSLog(@"Path to file: %@", path);   
NSLog(@"File exists: %d", fileExists); 
NSLog(@"Is deletable file at path: %d", [fileManager isDeletableFileAtPath:path]); 
if (fileExists) 
{ 
    BOOL success = [fileManager removeItemAtPath:path error:&error]; 
    if (!success) NSLog(@"Error: %@", [error localizedDescription]); 
} 
+0

пытался, такую ​​же ошибку 'Не удается удалить файл -: «2016-06-08 12/52/16.326image» не удалось удалить. '' NSError * \t домен: @ "NSCocoaErrorDomain" - c ode: 4 \t ' – LeXeR

+0

для второго кода. Он входит в предложение if 'if ([[NSFileManager defaultManager] isDeletableFileAtPath: path])', но после этого дает ту же ошибку. – LeXeR

+0

есть ли способ избежать символов в имени файла, а затем удалить. – LeXeR