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]; }
4、多種字元編碼檔案內容載入
// 使用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];
更多的 CFStringConvertEncodingToNSStringEncoding 編碼標識轉換函式的參數可查看 CoreFoundation/CFStringEncodingExt.h 中的相關聲明,逐個試試,猜猜,就可能找到想要的,以實測為準。