2012-04-14 2 views
1

프로그래밍 방식으로 Cocoa로 폴더를 만들려고합니다.코코아에서 폴더 (번들) 만들기

내가 NSString 범주를 작성했습니다 그리고 우리가 다음과 같은 기능을 가지고 : 몇 마디에,

- (void)createAsFolder 
{ 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSError* err = nil; 

    [fileManager createDirectoryAtPath:self withIntermediateDirectories:YES attributes:nil error:&err]; 

    if (err) 
    { 
     NSLog(@"ERROR : %@",err); 
    } 
} 

자, 우리가 NSString* path = @"/some/path/is/here";가 있다고 가정 해 봅시다, 우리는에 의해 간단하게 만들 수 있습니다

를 정상 폴더를 완벽하게 작동하지만, 지정된 경로가 번들이 때
[path createAsFolder]; 

것은 그것은,하지 않는 것입니다 (즉 : 확장자). 예.

위의 코드는 작동하지 않습니다.

해결 방법에 대한 아이디어가 있으십니까?

+0

오류가 있습니까? –

+0

@EvanMulawski 아니, 절대적으로 오류가 없습니다 (그리고 절대 번들/폴더가 있어야합니다 장소에); 로깅을 통해 모든 경로를 확인했습니다. 올바른 것입니다. 기본적으로 한 위치에서 다른 위치로 전체 파일 트리 구조를 복사하고 있습니다. 번들 (및 그 내용)을 제외하고 모든 것이 훌륭하게 복사됩니다. –

답변

1

시도해보십시오. NSFileWrapper 나는 네가하고 싶은 일을 할 수 있다고 생각한다. 어떤 절대적 있습니다

NSFileWrapper* w = [[NSFileWrapper alloc] initWithPath:initialPath]; 

[w writeToFile:destinationPath atomically:YES updateFilenames:YES]; 

을 네 그리고 :

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSFileWrapper_Class/Reference/Reference.html

+0

나는 NSFileWrapper를 10 번이나 배웠고 가능한 해결책으로 그것을 기각했다. 다시 점검하라고 내게 말하면서 내가 다시 생각하게 만들었 어 ... 네, 100 % 맞았어요. 필자는 디렉토리 트리에 대해 하나의 함수를 작성했습니다. 하나는 파일을 복사하는 것이고, 다른 하나는 폴더를 만드는 것입니다 (패키지/번들을 찾았으므로 완전히 작동하지 않았습니다). 전체 트리를 가로 지르고 하위 노드를 작성하는 함수입니다. 이 모든 것은 2 개의 비열한 선으로 끝날 수 있었지만 ... 어떤 때는 바보 같은 느낌이 들었습니다 ... 고마워, 친구! :-) –

+0

어둠 속에서 정말 총알이었습니다. 며칠 전 문서 기반의 응용 프로그램 디자인을 연구 할 때 그것에 대해 읽었습니다. 나는 그 기술이 작동 할 것이라고 생각했습니다.) – thundersteele

+0

좋은 ... 그 다음에는 쐈어! LOL ;-) –

2

OK, 여기 당신이 다른 장소에에서 전체 파일 트리를 복사 할 경우, (감사 @thundersteele에) 답이다 문제는 하위 폴더가 패키지/번들인지 여부와 관계 없습니다. 그다지 어렵지 않은가? 그냥 2 줄 ...

+1

그 방법은 OS X v10.6에서 감가 상각됩니다. 대신 writeToURL : options : originalContentsURL : error :를 사용해야합니다. – rdelmar