#import <Foundation/Foundation.h>
#define PATH @"/Users/huzhiping/Desktop/Code"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// NSFileManager 是一個專門用來管理文件和文件夾的類,通過一系列的對象方法
//1.創(chuàng)建一個NSFileMananer對象(單例對象)
//系統(tǒng)提供的單例方法,一般是以default開頭
NSFileManager *manager = [NSFileManager defaultManager];
//2. 淺度遍歷
//?作用:返回當(dāng)前文件夾下的所有的文件和文件夾(不包含子目錄)
// 參數(shù)1:文件夾的路徑(絕對路徑)
// 參數(shù)2:錯誤信息(NSError 是OC中專門用來存儲錯誤信息的類,一般不要程序員給他賦值)
// 如果遍歷成功了這個NSError的是空,否則NSError的值就不為空,存儲錯誤信息。
NSError *error;
NSArray *array1 = [manager contentsOfDirectoryAtPath:PATH error:&error];
// 判斷遍歷是否成功
if (!error) {
NSLog(@"遍歷成功");
NSLog(@"%@", array1);
} else {
NSLog(@"遍歷失敗");
NSLog(@"%@", error);
}
//3. 深度遍歷
//?作用:遍歷出當(dāng)前文件夾下的所有的文件和文件夾的名字
// 包含子目錄的相對路徑名和子目錄下的文件)
// 參數(shù)1:文件夾的路徑(絕對路徑)
// 參數(shù)2:錯誤信息(NSError 是OC中專門用來存儲錯誤信息的類,一般不要程序員給他賦值)
// 如果遍歷成功了這個NSError的是空,否則NSError的值就不為空,存儲錯誤信息。
error = nil;
NSArray *array2 = [manager subpathsOfDirectoryAtPath:PATH error:&error];
if (!error) {
NSLog(@"遍歷成功");
NSLog(@"%@", array2);
} else {
NSLog(@"遍歷失敗");
NSLog(@"%@", error);
}
//4.創(chuàng)建文件夾
// 作用:在制動的路徑下創(chuàng)建一個文件夾
//?參數(shù)1:路徑(不能只是包含需要創(chuàng)建文件夾的路徑,還需要包含需要創(chuàng)建的文件夾的名字)
// 就是假設(shè)已經(jīng)創(chuàng)建好的文件夾的路徑
// 參數(shù)2:是否創(chuàng)建中間目錄 推薦傳入YES
// 參數(shù)3:文件夾屬性,傳入nil表示默認(rèn)屬性
// attributes 屬性
// 參數(shù)4: 錯誤信息
// 返回值是一個布爾值 是否創(chuàng)建成功
// 拼接路徑
NSString *newPath = [NSString stringWithFormat:@"%@/c", PATH];
BOOL ret = [manager createDirectoryAtPath:newPath withIntermediateDirectories:YES attributes:nil error:nil];
if (ret) {
NSLog(@"創(chuàng)建文件夾成功");
} else {
NSLog(@"創(chuàng)建文件夾失敗");
}
// 5.創(chuàng)建文件
//?參數(shù)1:路徑,你要創(chuàng)建的文件創(chuàng)建好的時候的路徑
// 參數(shù)2:文件內(nèi)容(二進制形式)
//將數(shù)據(jù)存到文件中或者從文件中取出數(shù)據(jù),這個數(shù)據(jù)類型都是二進制形式的)
// 參數(shù)3:文件屬性
// 返回值是布爾值: 是否創(chuàng)建成功
// 專門用來拼接路徑的方法
NSString *newPath2 = [PATH stringByAppendingPathComponent:@"file.txt"];
//創(chuàng)建內(nèi)容字符串
NSString *content = @"Hello, world!";
// 將字符串轉(zhuǎn)換成NSData 這是字符串對象的方法
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
// 創(chuàng)建文件
BOOL ret2 = [manager createFileAtPath:newPath2 contents:data attributes:nil];
ret2 ? NSLog(@"文件創(chuàng)建成功"):NSLog(@"文件創(chuàng)建失敗");
// 6.刪除文件或者文件夾
// 參數(shù)1:要刪除的文件或者文件夾的路徑
// 參數(shù)2:錯誤信息
// 返回值布爾值: 是否刪除成功
BOOL ret3 = [manager removeItemAtPath:[PATH stringByAppendingPathComponent:@"c"] error:nil];
ret3 ? NSLog(@"文件夾刪除成功"):NSLog(@"文件夾刪除失敗");
// 7.判斷文件或者文件夾是否存在
// 參數(shù)1:文件或者文件夾的路徑
// 返回值布爾值: 是否存在
bool ret4 = [manager fileExistsAtPath:[PATH stringByAppendingPathComponent:@"file.txt"]];
ret4 ? NSLog(@"存在"):NSLog(@"不存在");
// 8.判斷文件或者文件夾是否存在并且判斷是否是文件夾
// 參數(shù)1:文件或者文件夾的路徑
// 參數(shù)2:用來存儲是否是文件夾的結(jié)果,如果是文件夾那么這個參數(shù)的指向的變量值會變成YES,否則是NO.
// 返回值布爾值: 是否存在
BOOL ret6 = NO;
BOOL ret5 = [manager fileExistsAtPath:[PATH stringByAppendingPathComponent:@"file.txt"] isDirectory:&ret6];
if (ret5) {
NSLog(@"存在");
if (ret6) {
NSLog(@"是文件夾");
} else {
NSLog(@"不是文件夾");
}
} else {
NSLog(@"不存在");
}
// 9.獲取文件或者文件夾的屬性
// 參數(shù)1:路徑
// 參數(shù)2:錯誤信息
// 返回值是字典
NSDictionary *dict = [manager attributesOfItemAtPath:PATH error:nil];
NSLog(@"%@", dict);
// 10.拷貝文件或者文件夾
// 參數(shù)1:文件或者文件夾的原始路徑
//?參數(shù)2:文件或者文件夾的目標(biāo)路徑 (注意:一定要拼接出拷貝完后,文件或者文件夾的路徑)
// 參數(shù)3:錯誤信息
// 返回值是否拷貝成功
BOOL ret7 = [manager copyItemAtPath:[PATH stringByAppendingPathComponent:@"file.txt"] toPath:[PATH stringByAppendingPathComponent:@"m/file.txt"] error:nil];
ret7 ? NSLog(@"拷貝成功"):NSLog(@"拷貝失敗");
// 11.文件或者文件夾的移動
// 參數(shù)1:文件或者文件夾的原始路徑
// 參數(shù)2:文件或者文件夾的目標(biāo)路徑 (注意:一定要拼接出拷貝完后,文件或者文件夾的路徑)
// 參數(shù)3:錯誤信息
// 返回值是否移動成功
bool ret8 = [manager moveItemAtPath:[PATH stringByAppendingPathComponent:@"n"] toPath:[PATH stringByAppendingPathComponent:@"m/n"] error:nil];
ret8 ? NSLog(@"移動成功"):NSLog(@"移動失敗");
}
return 0;
}
objective-C NSFileManager的方法(文件操作)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 寫在前面弄了下個人站...防止內(nèi)容再次被鎖定...所有東西都在這里面welcome~個人博客 所有方法 都很簡單,...
- Objecitve-C的重要特性是Runtime(運行時),在#import 下能看到相關(guān)的方法,用過objc_g...
- 在Debug一個C++程序的時候發(fā)現(xiàn)一個這樣的斷言中斷: _VALIDATE_CLEAR_OSSERR_RETUR...
- 對文件的操作 一、 文件管理常用的類和方法 1、NSFileManager: 提供了對文件的基本操作類,對文件的刪...