내 응용 프로그램에서 사용자가 사운드 클립을 녹음하도록하고 나중에 사용자가 선택한 경우 삭제할 수있게하려고합니다.iPhone/Objective C : 파일을 삭제할 수 없습니다.
Error: Error Domain=NSCocoaErrorDomain Code=4 UserInfo=0x391b7f0 "Operation could not be completed. (Cocoa error 4.)"
경로가있다,
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSLog(@"File exists: %d", [fileManager fileExistsAtPath:path]);
NSLog(@"Is deletable file at path: %d", [fileManager isDeletableFileAtPath:path]);
[fileManager removeItemAtPath:path error:&error];
if (error != nil)
{
NSLog(@"Error: %@", error);
NSLog(@"Path to file: %@", path);
}
문제는 fileExistsAtPath
및 isDeletableFileAtPath
수익을 널 (null)과 removeItemAtPath
이 작동하지 않는다는 것입니다,이 오류가 발생합니다 :
이
내가 사용하는 코드입니다 이 형식 :/Users/andrei/Library/Application%20Support/iPhone%20Simulator/User/Applications/5472B318-FA57-4F8D-AD91-7E06E9609215/Documents/1280913694.caf
1280913694.caf
이라고하는 파일이 있지만 가져 오지 않습니다. 경로가 표현되어야하는 방식과 관련이 있습니까?
AVAudioPlayer
으로 오디오 파일을 재생할 때 경로가 작동합니다.
fileExistsAtPath
및
isDeletableFileAtPath
에 대한
%d
에
%@
을 변경 한 대답은 내가 FALSE 의미 가정 0이다.
파일의 이름이 데이터베이스에 저장되고, 파일의 경로는이 방법으로 검색됩니다 :이 값을 얻을 후
-(NSString *)returnFullPathToDirectory
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return documentsDirectory;
}
, 나는 다음과 같은 코드에서 사용
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
'-removeItemAtPath'를'% d' (으)로 변경하고 다시 실행하십시오. – kennytm
file : // 접두사는 NSURL로 변환하고 .path 속성을 얻는 것과 같이 제거해야합니다. (실제로 경로가 위에 있음) – ThomasRS