寫扣前先來整理一下objective-c 裡面”一些“檔案存取的方法
1. 讀取project中所加入的圖檔:
//讀取圖檔到UIImage的object中 UIImage *image = [UIImage imageNamed:@"image_name.png"]; //把UIImage加入到UIImageView UIImageView *imageView = [[UIImage alloc]initWithImage:image];
2. 讀取加入到project中的其他檔案:
//獲得txt檔案的路徑 NSString *path = [[NSBundle mainBundle]pathForResource:@"file_name" ofType:@"txt"]; //write to NSString NSError *error; NSString *fileText = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
3. 讀取App中亂數資料夾的檔案,在實體的iPhone中,App的亂數資料夾主要存在/var/mobile/Applications/亂數資料夾
//以下method是在回傳檔案路徑 ///var/mobild/Applications/亂數資料夾/Documents/file_name(iPhone上) ///Users/使用者帳號/Library/Application Support/iPhone Simulator/模擬器版本/Applications/亂數資料夾/Documents/file_name(模擬器上) - (NSString *)filePath:(NSString *)name{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) NSString *documentsDirectory = [paths objectArIndex:0]; return [documentsDirectory stringByAppendingPathComponent:name] } //create file NSString *path = [self filePath:@"test.txt"]; if([[NSFileManager defaultManager]fileExistsAtPath:path]){ NSLog(@"file exist"); } else{ NSLog(@"create file"); NSArray *array = [[NSArray alloc]initWithObjects:@"andy",@"peter",@"John",nil]; [array writeToFile:path atomically:YES]; } //read file NSString *path = [self filePath:@"test.txt"]; if([[NSFileManger defaultManger]fileExistsAtPath:path]){ NSLog(@"file exist"); NSArray *array = [[NSArray alloc]initWithContentsOfFile:path]; for(NSString *name in array){ NSLog(@"%@",name); } }
4. 網路上找到一些關於路徑的整理(參考資料): iPhone檔案結構: <程式根目錄> 我的程式.app (程式的主要資料夾,只能讀取) 我的程式 MainWindow.xib 其他在Xcode中所加入的Resources Documents Library Cache Preference 以下為找到路徑的方法:
// 基本的目錄 NSString *homePath = NSHomeDirectory(); // 根目錄 NSString *tmpPath = NSTemporaryDirectory(); // 暫存目錄 // Documents 資料夾 NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsPath = [paths objectAtIndex:0]; // <程式根目錄>/Documents/foo.plist NSString *fooPath = [documentsPath stringByAppendingPathComponent:@“foo.plist”];
沒有留言:
張貼留言