从数据库永久删除文件ios

我正在制作一个录音机(m4a扩展文件)。 我正在为logging的文件的输出(在目录中)给出一个特定的URL。 我可以播放它,保存文件在数据库中的path,并可以稍后检索。 事情正在好转。 但我无法删除保存/未保存的文件。 每次录制audio时,文件都占用一个永久空间。 我无法删除它们。

我试过了互联网(stackoverflow of course)。 我有像这样的链接: 我有videourl,并希望使用此URl从iPhone中删除它

但他们正在显示COCOA错误4,当我尝试删除它们使用这样的代码:[[NSFileManager defaultManager] removeItemAtPath:strPath error:&error];

请build议,并回复

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

unlink([pathForURL UTF8String]); 

其中pathForURL是一个NSString,它描述了要删除的资源的path。

这是我得到更早path ,在那里我无法写文件

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

今天早上,我再次运行我的代码。 现在它的展示path

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

在这条路上我能写我的文件

两条path之间的区别在于, 第一个是Library / Documentation第二个是Documents

不知道区别,但它现在正在工作

有可能是您提供的文件path不正确的情况。 如果它的正确,然后尝试跟随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]; }