在ios开发中,经常会遇到给一个下载的文件制定一个存储路径的问题;
如何实现存储呢,我这里复制了一段代码,供大家借鉴:
#define RELEASE_DEBUG 1
- (void)copyRomsToDocumentDirectory:(NSString*)filename
{
#if RELEASE_DEBUG
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
#else
NSString *documentsDirectory=@"/var/mobile/Library/Preferences/First/ROMS";
#endif
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", filename]];
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL success = [fileManager fileExistsAtPath:filePath];
if(!success){
NSString *filePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"newFile/%@",filename]];
[fileManager copyItemAtPath:filePathFromApp toPath:filePath error:nil];
}
}
大家注意到这里面我定义了一个宏,这个宏定义主要是对越狱机和非越狱机两种机子的不同路径进行了不同的设置;另外需要多说一句的是[[NSBundle mainBundle] resourcePath]这个方法,它指向的是你工程说在的路径,通常情况下,我们都会把一般的文件和工程文件放到同一个目录下,也即所谓的[[NSBundle mainBundle] resourcePath],但是最好的情况是在这个目录下再重新创建一个进的文件夹,存放你想要存放的东西,这样看起来就比较的清晰。