我想將多個文件從我的一個NSBundle複製到文檔目錄應用程序啓動時。多個文件複製到文檔目錄
這是複製文件的代碼:
- (NSString *) getPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingString:@"Photo.png"];
}
- (void) copyFile
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *Path = [self getPath];
BOOL success = [fileManager fileExistsAtPath:Path];
if(!success) {
NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Photo.png"];
success = [fileManager copyItemAtPath:defaultPath toPath:Path error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable file with message '%@'.", [error localizedDescription]);
}
}
的的CopyFile方法將被稱爲在「applicationDidFinishLaunchingWithOptions」方法。但是這種方法只允許將一個文件複製到Documents目錄。如果我想從我的NSBundle複製50個文件,這是否意味着我必須指定50個路徑?有沒有簡短的方法,例如只用幾行代碼就可以獲得NSBundle中的所有文件?
可我知道爲什麼嗎? – Lloydworth
@Lloydworth因爲這樣你可以調用'copyFileWithName' 50次,每次給另外一個文件名和'copyFileWithName'可以調用'getPathOfFileName'每一個不同的文件名的時間來獲取複製的當前文件的路徑。當然這仍然意味着你需要所有這50個文件的列表。所以這不是一個方便的解決方案。 – Mecki