2013-01-25 1 views
2
- (NSURL *) applicationDocumentsDirectory 
{ 
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
} 

.... 내가 두 번 코드의이 부분을 실행NSFileManager를 폴더

NSURL *folder = [[[Database sharedInstance] applicationDocumentsDirectory] URLByAppendingPathComponent:@"temp"]; 
BOOL isFolder; 
NSLog(@"URL: %@", folder); 
if ([[NSFileManager defaultManager] fileExistsAtPath:folder.absoluteString isDirectory:&isFolder] == NO) 
{ 
    NSLog(@"IsFolder: %d", isFolder); 
    [[NSFileManager defaultManager] createDirectoryAtURL:folder withIntermediateDirectories:YES attributes:nil error:&error]; 
    if (error) 
     NSLog(@"Error: %@", error.localizedDescription); 
} 

을 만들지 않습니다.

폴더를 만들지 만 로그를받을 때마다 : "IsFolder : 7"을 기대합니다.

처음 실행 한 후에 폴더가 만들어지지 않은 이유는 무엇입니까?

+0

isFolder가 true인지 확인하십시오. – Dhara

+0

"BOOL isFolder = YES"로 변경되었습니다. fileExistsAtPath는 여전히 NO를 반환합니다 ... – iWheelBuy

+0

'... AtURL :'대신'... AtPath :'를 사용하려고하면 도움이 될 것입니다. – holex

답변

8

) 문서

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

2

폴더 가져 오기) 문제가 SETP

1

후속의 SETP를 해결, 폴더 수 folder.absoluteString을 대체 문서 폴더와 폴더 이름

을 보내 주시기 바랍니다
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"MyFolder"]; 

3) alerdy가 있는지 확인하십시오.

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){ 

    NSError* error; 
    if( [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]) 

     else 
     { 
      NSLog(@"[%@] ERROR: attempting to write create MyFolder directory", [self class]); 
      NSAssert(FALSE, @"Failed to create directory maybe out of disk space?"); 
     } 
+0

알겠습니다. 나는 WithIntermediateDirectories : YES에서 NO로 변경했습니다. 두 번째 실행에서 "작업을 완료 할 수 없습니다. 파일이 있습니다."라는 메시지가 나타납니다. 이는 파일이 생성되었음을 의미합니다. 나는 왜 fileExistsAtPath가 매번 NO를 반환하는지 궁금하다. – iWheelBuy

+0

내 업데이트 답변 확인 – Deepesh

8

문제는 folder.absoluteString입니다.

대신 folder.path이어야합니다.

관련 문제