1、獲取應用包中文件的絕對路徑:
NSString *absoluteFileName = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"filename.ext"];
2、獲取文檔根目錄下文件的絕對路徑:(該目錄下文件及文件夾可在 itunes 中共享,並進行增減操作)
// 獲取文檔根目錄路徑,也即itunes共享的目錄 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // 默認只有一個,就取第一個 NSString *documentsDirectory = [paths objectAtIndex:0]; // 文檔根目錄串附加一個文件名,構造出一個該目錄下文件的完整路徑 NSString *absoluteFileName = [documentsDirectory stringByAppendingPathComponent:@"filename.ext"];
3、判斷指定路徑下的文件是否存在
// 獲取文檔根目錄路徑,也即itunes共享的目錄 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // 默認只有一個,就取第一個 NSString *documentsDirectory = [paths objectAtIndex:0]; // 文檔根目錄串附加一個文件名,構造出一個該目錄下文件的完整路徑 NSString *absoluteFileName = [documentsDirectory stringByAppendingPathComponent:fileName]; // 文件管理器對象單例獲取 NSFileManager *fileManager = [NSFileManager defaultManager]; // 判斷上面構建的完整路徑對應的文件是否存在 if (![fileManager fileExistsAtPath:absoluteFileName]) { // 文件不存在,則用應用包路徑再構建該文件的完整路徑 absoluteFileName = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:fileName]; }
// 使用Utf-8編碼讀取該文件內容 NSString *fileContent = [NSString stringWithContentsOfFile:absoluteFileName encoding:NSUTF8StringEncoding error:nil];
// 使用 kCFStringEncodingGB_18030_2000 編碼讀取該文件內容 NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); NSString *fileContent = [NSString stringWithContentsOfFile:absoluteFileName encoding:stringEncoding error:nil];