以下是发生这种情况的部分的示例代码:
// Create file managerNSfileManager *fileMgr = [NSfileManager defaultManager];//UnzipNsstring *applicationdocumentsDir = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];Zipfile *unzipfile = [[Zipfile alloc] initWithfilename:[applicationdocumentsDir stringByAppendingPathComponent:[Nsstring stringWithFormat:@"%@.zip",@"MID America Oireachtas 2011"]] mode:ZipfileModeUnzip];NSArray *infos= [unzipfile ListfileInZipInfos];for (fileInZipInfo *info in infos) { //NSLog(@"- %@ %@ %d (%d)",info.name,info.date,info.size,info.level); // Locate the file in the zip [unzipfile locatefileInZip:info.name]; // Expand the file in memory ZipReadStream *read= [unzipfile readCurrentfileInZip]; NSMutableData *data= [[NSMutableData alloc] initWithLength:info.length]; int bytesRead = [read readDataWithBuffer:data]; [read finishedReading]; Nsstring *appSupportFolder = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,YES) lastObject]; Nsstring *pathfull = [appSupportFolder stringByAppendingPathComponent:info.name]; Nsstring *path = [[pathfull stringByDeletingLastPathComponent] copy]; NSError *errorw; NSRange range = [path rangeOfString:@"__MACOSX"]; if (range.location == NSNotFound) { NSLog(@"last: %@",[path lastPathComponent]); if ([fileMgr createDirectoryAtPath:path withIntermediateDirectorIEs:YES attributes:nil error:&errorw]) { NSLog(@"Create Folder: %@",path); NSLog(@"Directory Win: %@",errorw); if (![[pathfull pathExtension] isEqualToString:@""] && ![[[pathfull lastPathComponent] substringToIndex:1] isEqualToString:@"." ]) { [data writetofile:pathfull atomically:NO]; } } else { //NSLog(@"Create Folder: %@",path); NSLog(@"Directroy Fail: %@",errorw); } }}[unzipfile close];//delete zip// For error informationNSError *error;if ([fileMgr removeItemAtPath:[applicationdocumentsDir stringByAppendingPathComponent:[Nsstring stringWithFormat:@"%@.zip",@"MID America Oireachtas 2011"]] error:&error] == YES) { NSLog(@"file Deleted");}//delete zip// For error informationNSError *error;if ([fileMgr removeItemAtPath:[applicationdocumentsDir stringByAppendingPathComponent:[Nsstring stringWithFormat:@"%@.zip",@"My Zip"]] error:&error] == YES) { NSLog(@"file Deleted");}
以下是日志文件的相关输出片段:
2012-01-04 17:12:51.509 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/ 2012-01-04 17:12:51.510 WhatsMyStageOn[3232:15503] Directory Win: (null) 2012-01-04 17:12:51.510 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/documents/MID America Oireachtas 2011 2012-01-04 17:12:51.510 WhatsMyStageOn[3232:15503] Directory Win: (null) 2012-01-04 17:12:51.510 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/documents 2012-01-04 17:12:51.510 WhatsMyStageOn[3232:15503] Directory Win: (null) 2012-01-04 17:12:51.511 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/documents/__MACOSX 2012-01-04 17:12:51.511 WhatsMyStageOn[3232:15503] Directory Win: (null) 2012-01-04 17:12:51.511 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/documents/__MACOSX/MID America Oireachtas 2011 2012-01-04 17:12:51.511 WhatsMyStageOn[3232:15503] Directory Win: (null) 2012-01-04 17:12:51.511 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/documents/MID America Oireachtas 2011 2012-01-04 17:12:51.512 WhatsMyStageOn[3232:15503] Directory Win: (null) 2012-01-04 17:12:51.544 WhatsMyStageOn[3232:15503] Create Folder: /Users/Brandon/library/Application Support/iPhone Simulator/5.0/Applications/436C2C49-D79B-4cda-B0AA-15BB98F6F75E/WhatsMyStageOn.app/documents/MID America Oireachtas 2011/Attractions 2012-01-04 17:12:51.544 WhatsMyStageOn[3232:15503] Directory Win: (null)
阅读NSfileManager文档,这是应该在日志中输出的内容,但是,没有创建文件夹.
编辑:修复了不使用文档问题,仍然有与编辑前谴责相同的问题.
编辑:更新了工作解决方案的代码!
解决方法 你不应该写应用程序包本身.试试这个:Nsstring *appSupportFolder = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,YES) lastObject];Nsstring *path = [appSupportFolder stringByAppendingPathComponent:info.name];总结
以上是内存溢出为你收集整理的objective-c – NSFileManager createDirectoryAtPath:withIntermediateDirectories:不创建目录或创建错误全部内容,希望文章能够帮你解决objective-c – NSFileManager createDirectoryAtPath:withIntermediateDirectories:不创建目录或创建错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)