2012-08-27 203 views
1

我是iOS的新手。我有个问题。iOS:无法删除文件

我记录了文件的路径,我也在Finder中验证它。但fileExistsAtPath:返回NO,这就是为什么我不能删除它。

我需要帮助!

下面是代码:

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

} 

文件的路径:/Users/vibolteav/Library/Application Support/iPhone Simulator/5.1/Applications/FD57CA70-14E4-442D-9CA5-DE7A7AD56A93/Documents/img/2053871632

文件存在:0

是可删除的文件的路径:1

+2

能否请您粘贴的路径? – saadnib

+0

是位于沙箱中的文件吗? – BergP

+1

是您的文件readOnly还是两个读写?和你正在使用什么代码删除文件?粘贴完整的代码 –

回答

1

用于删除文件从文件目录你使用下面的代码:

-(void)removeOneImage:(NSString*)fileName 
{ 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:fileName]; 
    NSLog(@"%@",fullPath); 
    [fileManager removeItemAtPath: fullPath error:NULL]; 

}

+0

我发现我的错误,谢谢你们所有人! – Frozenna

+0

你愿意与我们分享吗?我也有同样的问题。 – Neeku

1

文件路径..

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    documentPath_ = [searchPaths objectAtIndex: 0]; 

附加文件名称...

NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:fileName]; 

    NSFileManager *fileManager = [NSFileManager defaultManager]; 

    if ([fileManager fileExistsAtPath:fullPath]) 
     { 
      NSError *error; 

      if (![fileManager removeItemAtPath:fullPath error:&error]) { 

      } 
     }