#import "TestViewController.h" @implementation TestViewController - (void)viewDidLoad { [super viewDidLoad]; //創建與刪除: //創建文件管理器 NSFileManager *fileManager = [NSFileManager defaultManager]; //獲取路徑 //參數NSDocumentDirectory要獲取哪種路徑 —— 獲取 /Documents路徑 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0];//去處需要的路徑 NSLog(@"%@",documentsDirectory); //更改到待操作的目錄下 [fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]]; //創建文件fileName文件名稱,contents文件的內容,如果開始沒有內容可以設置爲nil,attributes文件的屬性,初始爲nil [fileManager createFileAtPath:@"fileName" contents:nil attributes:nil]; //刪除待刪除的文件 [fileManager removeItemAtPath:@"createdNewFile" error:nil]; //寫入數據: //獲取文件路徑 NSString *path = [documentsDirectory stringByAppendingPathComponent:@"fileName"]; //待寫入的數據 NSString *temp = @"Hello friend"; int data0 = 100000; float data1 = 23.45f; //創建數據緩衝 NSMutableData *writer = [[NSMutableData alloc] init]; //將字符串添加到緩衝中 [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]]; //將其他數據添加到緩衝中 [writer appendBytes:&data0 length:sizeof(data0)]; [writer appendBytes:&data1 length:sizeof(data1)]; //將緩衝的數據寫入到文件中 [writer writeToFile:path atomically:YES]; [writer release]; //讀取數據: int gData0; float gData1; NSString *gData2; NSData *reader = [NSData dataWithContentsOfFile:path]; gData2 = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [temp length])] encoding:NSUTF8StringEncoding]; [reader getBytes:&gData0 range:NSMakeRange([temp length], sizeof(gData0))]; [reader getBytes:&gData1 range:NSMakeRange([temp length] + sizeof(gData0), sizeof(gData1))]; NSLog(@"gData0:%i gData1:%0.2f gData2:%@", gData0, gData1, gData2); /* //讀取工程中的文件: //讀取數據時,要看待讀取的文件原有的文件格式,是字節碼還是文本,我經常需要重文件中讀取字節碼,所以我寫的是讀取字節文件的方式。 //用於存放數據的變量,因爲是字節,所以是UInt8 UInt8 b = 0; //獲取文件路徑 NSString *path8 = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@""]; //獲取數據 NSData *reader8 = [NSData dataWithContentsOfFile:path8]; //獲取字節的個數 int length = [reader8 length]; NSLog(@"------->bytesLength:%d", length); for(int i = 0; i < length; i++) { //讀取數據 [reader8 getBytes:&b range:NSMakeRange(i, sizeof(b))]; NSLog(@"-------->data%d:%d", i, b); } */ /* //創建一個NSFileManager,創建自定義文件夾myTest NSFileManager *fileManger = [NSFileManager defaultManager]; NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@"myTest"]; BOOL ok = [fileManger createDirectoryAtPath:myDirectory attributes:nil]; //取得一個目錄下得所有文件名:(如上面的myDirectory)可用 NSArray *file = [fileManger subpathsOfDirectoryAtPath: myDirectory error:nil]; //或 //NSArray *files = [fileManager subpathsAtPath: myDirectory ]; //讀取某個文件: NSData *data = [fileManger contentsAtPath:myFilePath];//myFilePath是包含完整路徑的文件名 //或直接用NSData 的類方法: //NSData *data = [NSData dataWithContentOfPath:myFilePath]; //保存某個文件: //可以用 NSFileManager的 - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr; //或 NSData 的 - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; - (BOOL)writeToFile:(NSString *)path options:(NSUInteger)writeOptionsMask error:(NSError **)errorPtr; */ // NSString *filePath = [[NSBundle mainBundle] bundlePath];//獲得app的路徑 //2011-08-24 09:52:30.168 Test[619:207] /Users/ibokanwisdom06/Library/Application Support/iPhone Simulator/4.2/Applications/E91BDD30-2DB9-4982-BBCA-EE51A65091BA/Test.app // NSString *filePath = [[NSBundle mainBundle] executablePath];//獲得test的路徑 //2011-08-24 09:52:54.882 Test[649:207] /Users/ibokanwisdom06/Library/Application Support/iPhone Simulator/4.2/Applications/E91BDD30-2DB9-4982-BBCA-EE51A65091BA/Test.app/Test // NSString *filePath = [[NSBundle mainBundle] privateFrameworksPath];//獲得Frameworks的路徑 // NSLog(@"%@",filePath); } - (void)dealloc { [super dealloc]; } @end
NSFileManager文件管理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.