永久删除数据库中的文件

时间:2013-10-28 18:51:18

标签: ios iphone cocoa cocoa-bindings nsfilemanager

我正在制作录音机(m4a扩展文件)。我为录制文件的输出(在目录中)提供了一个特定的URL。 我能够播放它,将文件的路径保存在数据库中,以后可以检索它。很多东西很好。但我无法删除已保存/未保存的文件。每次录制音频时,文件都会占用一个永久空间。我无法删除它们。

我在互联网上试了一下(stackoverflow ofcourse)。我得到了这样的链接: I have video URL and want to delete it from the iPhone using this URl

但是当我尝试使用以下代码删除它们时,它们显示 COCOA ERROR 4 :[[NSFileManager defaultManager] removeItemAtPath:strPath error:& error];

请建议,并回复

3 个答案:

答案 0 :(得分:0)

您通常可以为您在Apps文档目录中保存的资源完成此操作,如下所示:

unlink([pathForURL UTF8String]);

其中pathForURL是一个NSString,用于描述您要删除的资源的路径。

答案 1 :(得分:0)

可能存在您提供的文件路径不正确的情况。如果正确,请尝试使用URL,这可能会解决您的问题

NSString *str= [outputFieldURL absoluteString];

    NSError *error;

    NSURL *url = [NSURL URLWithString:str];
    BOOL success = [[NSFileManager defaultManager] removeItemAtURL:url error:&error];


    if (!success) {
        NSLog(@"Error removing file at path: %@", error.localizedDescription);
    }
    else
    {
        NSLog(@"File removed  at path: %@", error.localizedDescription);
    }
}

在删除文件之前,您必须在那里检查文件:

 NSFileManager* manager = [[NSFileManager alloc] init];
 if ([manager fileExistsAtPath:path]) {
    [manager removeItemAtPath:path error:&error];
 }

答案 2 :(得分:0)

这是我之前的路径,我无法写文件

<强> /var/mobile/Applications/8584F54E-75D2-4833-8826-29C125E53DBC/Library/Documentation/291013193758w.png

今天早上,我再次运行我的代码,。现在它的显示路径

<强> /var/mobile/Applications/DDA14123-6A88-4756-B2E4-C4A3AA39AA5B/Documents/291013081335test.png

在此路径能够写我的文件

两条路径之间的区别在于,第一条是图书馆/文档,其中是第二条是文档

不知道差异,但它现在正在运作