Objective-C 目錄與文件操作


            ============================

        Objective-C    目錄與文件操作

          ============================

 

學習目標

  • 掌握NSFileManager類常用的文件管理操作
  • 掌握NSFileHandle類常用的文件數據操作

1.理解部分

 

1.1文件

<1>文件管理類NSFileManager

 

2.對文件進行管理操作

a.遍歷查看目錄下的文件

【深度遍歷】

【淺度遍歷】

 

b.創建文件/目錄

 

c.拷貝文件/目錄

d.移動文件/目錄

e.刪除文件/目錄

 

<2>文件句柄類NSFileHandle

1.對文件進行讀寫首先需要NSFileHandle打開文件

2.NSFileHandle對文件進行讀寫都是NSData類型的二進制數據

 

 

 

 

 

2.實踐部分

 

2.1 NSFileManager

<1>創建文件管理器單例對象

NSFileManager * fm = [NSFileManager defaultManager];

<2>遍歷目錄下的內容

//淺度遍歷

//僅僅遍歷當前文件夾下的第一層子文件夾

/// //contentsOfDirectoryAtPath,指定路徑下的第一層子文件夾(文件內容)

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;

//深度遍歷(又稱為遞歸便利)

//遍歷指定路徑下的所有文件夾和文件

//指定路徑下的子文件夾下的所有文件

- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

<3>創建文件

//創建普通文件

//createFileAtPath,在指定路徑下,創建文件

//第二個參數contents,是指在創建文件的同時,附上的文件內容

//第三個參數attributes ,如果寫nil, attributes會有系統自動管理

- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;

 

//創建目錄

//就是在指定路徑下創建文件夾

//withIntermediateDirectories,是否創建沒有路徑

- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error ;

 

<4>拷貝文件/目錄

//copyItemAtPath,在指定路徑下拷貝項目(文件夾,也能文件)

//srcPath,原路徑

//toPath,目標路徑

- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;

 

 

<5>移動文件/目錄

//moveItemAtPath,移動指定路徑下的文件或目錄,到另外一個指定的路徑

//剪切的同時,也能修改目錄或文件的名字

- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;

 

<6>刪除文件/目錄

//removeItemAtPath 刪除指定路徑下的文件夾或者文件

- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;

 

 

<7>獲取文件屬性

// attributesOfItemAtPath 查看指定目錄下的文件或者文件夾的屬性

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;

 

<8>判斷文件是否存在

- (BOOL)fileExistsAtPath:(NSString *)path;

 

 

2.2 NSFileHandle

 

NSFileHandle 對文件進行操作,讀,寫,設置文件指針偏移量的操作

2.2.1方法:

<1>打開文件方法

//以只讀方式打開

    + (id)fileHandleForReadingAtPath:(NSString *)path;

//以只寫方式打開

+ (id)fileHandleForWritingAtPath:(NSString *)path;

//以讀寫方式打開

+ (id)fileHandleForUpdatingAtPath:(NSString *)path;

 

<2>讀指定長度的數據

//readDataOfLength 讀取指定長度的字符串

//得知,每個漢字在編譯器中占三個字節,英文一個字節

- (NSData *)readDataOfLength:(NSUInteger)length;

 

<3>從當前偏移量讀到文件尾

//是將文本中所有的數據一次性讀到內存中

- (NSData *)readDataToEndOfFile;

 

<4>設置文件偏移量

//2.txt中的文字abcefg,如果偏移量為2的話,那么就是從c字符往后讀

//偏移量的默認值為0

- (void)seekToFileOffset:(unsigned long long)offset;

 

<5>將文件偏移量定位到文件尾

//將指針指向文本的結尾

- (unsigned long long)seekToEndOfFile;

 

<6>寫文件

//(NSData *)data,內存數據類型

// NSString *string=@“abc”,[string dataUsingEncoding:NSUTF8StringEncoding]

- (void)writeData:(NSData *)data;

<7>將文件偏移量以后的內容刪除,

//(unsigned long long)offset這個參數用於設置文件偏移量

- (void)truncateFileAtOffset:(unsigned long long)offset;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM