首先,先總結一下如何擷取Documents目錄,在ios開發中,我們經常需要檢索Documents目錄的完整路徑以便讀取和寫入檔案,我總結了以下兩種方法:
1、NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
2、NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
以上documentsDirectory就是擷取的Documents的完整路徑。
程式的所有資源檔,儲存在程式包中,擷取程式包路徑的方法是:
NSString *appDirectory = [[NSBundle mainBundle] bundlePath];
在實際開發中我們有時需要判斷Documents下的某個資源檔是否存在,如果不存在,則從程式包中拷貝進去,現在假設要判定的檔案是"xxx.txt",判定代碼如下:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *filePath = [self [documentsDirectory stringByAppendingPathComponent:@"xxx.txt"]];
if(![fileManager fileExistsAtPath:filePath]) //如果不存在
{
NSLog(@"xxx.txt is not exist");
NSString *dataPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/xxx.txt"];//擷取程式包中相應檔案的路徑
NSError *error;
if([fileManager copyItemAtPath:dataPath toPath:filePath error:&error]) //拷貝
{
NSLog(@"copy xxx.txt success");
}
else
{
NSLog(@"%@",error);
}
}