디렉토리 구조를 만들 디렉토리의 경로를 정의하는 것으로 시작합니다. 그런 다음 함수를 호출하여 디렉토리 구조를 작성하십시오.
NSString *pathToDirectory = @"./";
[self buildDirectoriesAtPath: pathToDirectory fromDictionary: dictionary];
기능 -buildDirectoriesAtPath:fromDictionary:
은 재귀와 같은 것을 보일 것이다 :
- (void) buildDirectoriesAtPath: (NSString *) filepath fromDictionary: (NSDictionary *) dictionary {
for (NSString *key in dictionary.allKeys) {
if ([key isEqualToString: @"Children"]) {
NSArray *children = [dictionary objectForKey: key];
for (id object in children) {
if ([object isKindOfClass: [NSDictionary class]]) {
NSDictionary *directoryInfo = (NSDictionary *) object;
NSString *directoryName = [directoryInfo objectForKey: @"Name"];
NSString *directoryPath = [NSString stringWithFormat: @"%@%@", filepath, directoryName];
// Create directory
NSLog(@"Creating directory: %@", directoryPath);
// Create subdirectories
NSArray *subdirectories = [directoryInfo objectForKey: @"Children"];
for (id directory in subdirectories) {
if ([directory isKindOfClass: [NSString class]]) {
NSString *subdirectoryName = (NSString *) directory;
NSString *subdirectoryPath = [NSString stringWithFormat: @"%@/%@", directoryPath, subdirectoryName];
// Create directory
NSLog(@"Creating directory: %@", subdirectoryPath);
}
else if ([directory isKindOfClass: [NSDictionary class]]) {
NSDictionary *subdirectory = (NSDictionary *) directory;
NSString *subdirectoryName = [subdirectory objectForKey: @"Name"];
NSString *subdirectoryPath = [NSString stringWithFormat: @"%@/%@/", directoryPath, subdirectoryName];
[self buildDirectoriesAtPath: subdirectoryPath fromDictionary: (NSDictionary *) directory];
}
}
}
else if ([object isKindOfClass: [NSString class]]) {
NSString *directoryName = (NSString *) object;
NSString *directoryPath = [NSString stringWithFormat: @"%@%@", filepath, directoryName];
// Create directory
NSLog(@"Creating directory: %@", directoryPath);
}
}
}
}
}
이에 명확히 싶은 기능이 있다면이 물어 주저하지 말고합니다. :)
재귀 난 후였다 그냥 뭐, 완벽 친구 –