【iOS 開發基礎學習 七】

文件的管理

  • 沙盒的概念
    定義:
		1、iOS中每個App應用程序都有一個`單獨封閉` 的文件夾。
	 	2、沙盒目錄用來存放App的本地文件,例如:音頻、視頻、圖片文件
		3、當前App應用陳旭沒權限訪問其他App的沙盒(更安全)

沙盒路徑的獲取

- 模擬器上的沙盒目錄路徑:
	~/Library/Application Support/iPhone Simulator/版本/Applications
	
- 沙盒目錄中有如下子目錄
	1、Documents存放長期使用的文件
	2、Library系統存放文件
	3、tmp臨時文件,App重啓時,該目錄下的文件清空
	//沙盒的主目錄
	NSString *homePath = NSHomeDirectory();
	//2.獲取主目錄
	NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearchPathDomainMask domainMask,BOOL expandTilde)
	
	//獲取沙盒下Documents目錄
	NSString *documents = [homePath stringByAppendingPathComponent:@"Documents"];
	//獲取沙盒下的Library目錄
	NSString *library =	[homePath stringByAppendingPathComponent:@"Library"];
	//獲取沙盒下的tmp目錄
	NSString *library =	[homePath stringByAppendingPathComponent:@"tmp"];
  • NSString處理路徑
	//演示路徑
	NSString *path = @"/User/iOS/file.txt";
	//1.獲取路徑的組成部分	結果:("/","User","iOS","file.txt")
	NSArray *components = [path pathComponents];
	//2.路徑的最後一個組成部分 	結果:file.txt
	NSString *lastName = [path lastPathComponent];
	//3.追加文件或目錄 	結果:/User/iOS/file.txt/app.txt
	NSString *filePath = [path stringByAppendingPathComponent:@"app.txt"];//(不需要加"/")
	//4.刪除最後部分的組成部分	結果:/User/iOS
	NSString *filePath = [path stringByDeletingLastPathComponent];
	//5.獲取路徑最後部分的擴展名 	結果:txt
	NSString *extName = [path pathExtension];
	//6.追加擴展名	結果:/User/iOS/file.txt.jpg
	NSString *filePath = [path stringByAppendingPathExtension:@"jpg"];
  • NSData
    定義: NSData是對數據的一種抽象,任何數據都可以通過NSData來存儲,NSMutableData是可變的,繼承於NSData。
    分類:
	 - 音頻數據
	 - 圖片數據
	 - 視頻數據
	 - 文本數據

示例

	//NSString 轉 NSData
	NSData *data = [s dataUsingEncoding:NSUTF8StringEncoding];
	
	//NSData 轉 NSString
	NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
 	
 	
  • NSFileManager
    定義: NSFileManager主要對文件進行管理
    功能:
    - 創建文件
    - 複製文件
    - 刪除文件
    - 剪切文件
	//創建NSFileManager對象
	NSFileManager *fileManager = [NSFileManager defaultManager]; 	
	//創建:一個文件並寫入數據
	-(BOOL) createFileAtPath:(NSString *)path contents:(NSData *)data;
	//從一個文件中讀取數據
	-(NSData *)contentsAtPath:(NSString *)path;		
	//剪切:srcPath路徑上的文件移動到dstPath路徑上,注意這裏的路徑是文件路徑而不是目錄(可以修改文件名)
	-(BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **/*雙重指針變量*/)error;
	//複製:srcPath路徑上的文件複製到dstPath路徑上
	-(BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError *)error;
	//文件是否存在
	-(BOOL)fileExistsAtPath:(NSString *)path;
	//移除文件(刪除)
	-(BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
	//文件屬性
	-(NSDictionary)attributesOfItemAtPath:(NSString *)path error:(NSSError **)error;
  • NSFileHandle
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章