2010-02-23 6 views
2

내 자신의 디렉터리 트리를 만들고 내 응용 프로그램에서 액세스하는 방법을 이해하려고합니다.내 자신의 디렉터리 위치

나는 프로그램을 배우는 어떤 종류의 일이 같은 디렉토리 구조를 만들려하고있다 :

-MyLessonsDirectory 
--LessonDirectory_1 
---Step_1 
---Step_2 
---Step_3 
--LessonDirectory_2 
---Step_1 
---Step_2 
---Step_3 
. 
. 
and so on 

각 "단계"나는이 수업의 단계에 대한 구체적인 내용이있을 것이다 -directory. 내용은 개발 도중에 나에 의해 추가되었습니다. 따라서 응용 프로그램 내에서 구조와 내용을 작성하고 액세스하고 디렉토리의 내용을 읽는 것을 원하지 않습니다. 이런 종류의 구조를 만들고 사용할 수 있다면 내 앱에서 새로운 수업을 쉽게 만들 수있는 멋진 디자인을 만드는 것이 매우 쉽습니다.

내가 알 수없는 것은 xCode의 파일 구조에서 해당 디렉토리를 만들어야하는 위치와 내 응용 프로그램의 해당 디렉토리에 대한 경로입니다.

답변

1

iPhone에서는 응용 프로그램의 디렉토리에만 액세스 할 수 있습니다. 연습 디렉토리를 app 디렉토리의 Documents 폴더에 두는 가장 좋은 장소.

이 ...

NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 

은 ... 당신이 다음 NSFileManager를에 넘겨 수있는 디렉토리 폴더의 경로를 제공합니다.

앱은 횡설수설 UUID 이름을 가진 폴더 중 하나에있을 것, 시각적으로 디렉토리 구조를 볼 수있는 시뮬레이터에서 응용 프로그램을 실행하고

~/Library/Application Support/iPhone Simulator/User/Applications 

에보고합니다. Finder에서 디렉토리와 파일을 볼 수 있습니다.

아이폰에는 실제로 필요한 대부분의 디렉토리가 있습니다. 당신은 환경 설정, 캐시, tmp, 문서 등을 제자리에 가지고 있습니다.

Edit01는 :

내가 뭘 원하는 내가 응용 프로그램을 시작하기 전에 수동 내용 를 추가하는 것입니다. 그런 다음 응용 프로그램 내에서 응용 프로그램을 시작하기 전에 I 내용을 읽습니다.

기본 디렉터리 구조는 변경할 수 없으며 응용 프로그램이나 해당 디렉터리의 설치 방법을 전혀 제어 할 수 없습니다. iPhone 앱에는 외부 지원 파일이 없습니다. 모든 것은 앱 번들 안에 있습니다.

그러나 앱 번들은 실제로 디렉토리에 불과하므로 처음으로 앱을 실행할 때 기본 디렉토리 중 하나로 물건을 채울 수 있습니다.원하는 모든 것을 문서 디렉토리에 쓸 수 있습니다.

+0

답변 해 주셔서 감사합니다. 내 질문에 내가 분명하지 않은 것 같아. 내가 원하는 것은 응용 프로그램을 시작하기 전에 수동으로 내용을 추가하는 것입니다. 그런 다음 응용 프로그램 내에서 응용 프로그램을 시작하기 전에 추가 한 내용을 읽습니다. 나는 이것을 반영하기 위해 나의 질문을 편집했다. 첫 번째 문장을 읽으면, 내가 원하는 것을 할 수 없다는 뜻입니까? – Nicsoft

2

당신은 디렉토리를 만들 NSFileManager를보고 싶을 : 당신이 ~/응용 프로그램 지원에 넣을 수 있습니다, 지금까지 디렉토리를 작성하는 곳으로

NSFileManager *fm = [NSFileManager defaultManager]; 
NSError *error; 
BOOL result = [fm createDirectoryAtPath:@"path....." withIntermediateDirectories:YES attributes:nil error:&error]; 
if(result){ 
    NSLog(@"success!"); 
} else { 
    NSLog(@"error: %@",error); 
} 

을/- 앱의 환난이 어디 사용자가 앱에 액세스 할 필요가없는 경우 앱의 데이터를 저장해야합니다. 그렇지 않으면 사용자가 저장 위치를 ​​결정하도록해야합니다.

- (NSString *)applicationSupportDirectory { 

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); 
     NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory(); 
     return [basePath stringByAppendingPathComponent:@"MyApplication"]; 
} 
+0

답장을 보내 주셔서 감사합니다. 내 질문에 내가 분명하지 않은 것 같아. 내가 원하는 것은 응용 프로그램을 시작하기 전에 수동으로 내용을 추가하는 것입니다. 그런 다음 응용 프로그램 내에서 응용 프로그램을 시작하기 전에 추가 한 내용을 읽습니다. 나는 이것을 반영하기 위해 나의 질문을 편집했다. – Nicsoft

+0

xcode에서 프로젝트 아래에 직접 디렉토리를 만들고 응용 프로그램을 실행 한 다음/Users/Niklas/Library/Application Support/iPhone Simulator/User/Applications에서 체크인하고 내 응용 프로그램 내부에서 확인했습니다. 디렉토리가 따라 오지 않아서 원하는대로 작동하지 않는 것 같아요. 직접 디렉토리 구조를 만드십시오. 어쨌든 감사합니다. 파일의 이름을 지정하면 다른 해결책을 찾아야 할 것입니다. 디렉토리 구조를 시뮬레이트하십시오 ... 흠 ... – Nicsoft

관련 문제