day11---文件管理,目錄操作遥巴,日期類

一.NSFileManager方法

define PATH @"/Users/qianfeng/Desktop/c語(yǔ)言全部資料"

    //獲得當(dāng)前主目錄
    NSLog(@"%@",NSHomeDirectory());
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/c語(yǔ)言全部資料"];
    
    
    
    //創(chuàng)建文件管理對(duì)象(是一個(gè)單例對(duì)象)
    NSFileManager *fm = [NSFileManager defaultManager];
    
    
    //1.淺度遍歷【常用】某個(gè)指定的目錄(查看指定目錄下的一級(jí)子目錄或子文件)
    //第一個(gè)參數(shù):所查看的目錄所在的路徑千康;
    //第二個(gè)參數(shù):錯(cuò)誤信息,NSError铲掐,通常情況下拾弃,寫nil;
    NSError *error = nil;
    NSArray *array1 = [fm contentsOfDirectoryAtPath:path error:&error];
    NSLog(@"****error = %@",error);

// for (id xx in array1) {
// NSLog(@"%@",xx);
// }

    //2.深度遍歷(可以遍歷指定目錄下的所有的子目錄或子文件)
    NSArray *array2 = [fm subpathsOfDirectoryAtPath:path error:nil];

// for (id obj in array2) {
// NSLog(@"%@",obj);
// }

    //3.在指定的路徑下摆霉,創(chuàng)建新的目錄豪椿;
    //1)第一個(gè)參數(shù):路徑;
    //2)第二個(gè)參數(shù):如果為YES携栋,系統(tǒng)會(huì)自動(dòng)幫我們創(chuàng)建中間目錄搭盾,如果為NO,則不會(huì)婉支,建議一般都是用YES鸯隅;
    //3)第三個(gè)參數(shù):表示文件的屬性,通常寫nil向挖;
    //4)第四個(gè)參數(shù):表示錯(cuò)誤信息蝌以,寫nil;
    NSString *path1 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/middle/dir"];
    BOOL isSuccess = [fm createDirectoryAtPath:path1 withIntermediateDirectories:YES attributes:nil error:nil];
    if (isSuccess) {
        NSLog(@"創(chuàng)建成功何之!");
    }else{
        NSLog(@"創(chuàng)建失敗");
    }
    
    
    //4.在指定的目錄下創(chuàng)建文件
    //1)第一個(gè)參數(shù):路徑饼灿;
    //2)第二個(gè)參數(shù):文件里的內(nèi)容,NSData表示二進(jìn)制數(shù)據(jù);
    //3)第三個(gè)參數(shù):文件的屬性自娩,寫nil吓蘑;
    
    //拼接文件路徑
    NSString *filePath = [path1 stringByAppendingPathComponent:@"file.txt"];
    //準(zhǔn)備數(shù)據(jù)
    NSString *str = @"I am a good teather";
    //把字符串轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)                          【****重點(diǎn)】
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    
    
    BOOL isSuccess2 = [fm createFileAtPath:filePath contents:data attributes:nil];
    if (isSuccess2) {
        NSLog(@"創(chuàng)建成功!");
    }else{
        NSLog(@"創(chuàng)建失敗");
    }
    
    
    
    //五.目錄的拷貝和移動(dòng)
    //1.拷貝
    //原目錄的路徑path1
    //拼接最終目錄的路徑
    NSString *toPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/copyDir"];
    
    
    //第一個(gè)參數(shù):原目錄的路徑
    //第二個(gè)參數(shù):最終目錄的路徑(注:該路徑具體到拷貝過去之后的目錄名)
    //第三個(gè)單數(shù):
    BOOL isCopySuccess = [fm copyItemAtPath:path1 toPath:toPath error:nil];
    if (isCopySuccess) {
        NSLog(@"拷貝成功庇忌!");
    }else{
        NSLog(@"拷貝失敗舰褪!");
    }
    
    //2.移動(dòng)
    NSString *toPath1 = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/file.txt"];
    BOOL isMoveSuccess = [fm moveItemAtPath:filePath toPath:toPath1 error:nil];
    if (isMoveSuccess) {
        NSLog(@"移動(dòng)成功皆疹!");
    }else{
        NSLog(@"移動(dòng)失敗占拍!");
    }
    
    //3.判斷目錄是否存在
    BOOL isExists = [fm fileExistsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager"]];
    if (isExists) {
        NSLog(@"存在");
    }else{
        NSLog(@"不存在");
    }
    
    
    //4.檢測(cè)“XX”是文件還是目錄略就?
    //第一個(gè)參數(shù):
    //第二個(gè)參數(shù):isDirectory捎迫,需要傳入一個(gè)BOOL類型的地址,用于獲取是否是目錄還是文件
    //YES--->目錄
    //NO---->不是目錄表牢,是文件
    BOOL isFile;
    [fm fileExistsAtPath:toPath1 isDirectory:&isFile];
    if (isFile == YES) {
        NSLog(@"是目錄");
    }else{
        NSLog(@"不是目錄窄绒,是文件");
    }
    
    
    //5.刪除目錄(文件)
    BOOL isRemoveSuccess = [fm removeItemAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/middle"] error:nil];
    if (isRemoveSuccess) {
        NSLog(@"刪除成功");
    }else{
        NSLog(@"刪除失敗");
    }
    
    
    //6.獲取文件屬性
    NSDictionary *dict = [fm attributesOfItemAtPath:toPath1 error:nil];
    NSLog(@"%@",dict);
    //獲得文件的大小
    NSNumber *size = dict[@"NSFileSize"];
    //拆開成int,NSInteger都可以
    NSInteger sizeInteger = [size integerValue];
    NSLog(@"文件大小為:%ld",sizeInteger);

二.NSFileHandle方法
//一.以只讀的形式打開
NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/file.txt"]];
//1.把文件內(nèi)容一次性從頭讀到尾
// NSData *data = [fh readDataToEndOfFile];
// //.把二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成字符串 【******重點(diǎn)】
// NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// //字符串轉(zhuǎn)換成二進(jìn)制數(shù)據(jù) 【******重點(diǎn)】
//// [str dataUsingEncoding:NSUTF8StringEncoding];
// NSLog(@"str = %@",str);

    //2.給文件按字節(jié)數(shù)讀取

// NSData *data1 = [fh readDataOfLength:5];
// NSString *str1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
// NSLog(@"%@",str1);
// //后面接著讀取崔兴,接在上次讀取的位置后面往后讀取
// NSData *data2 = [fh readDataOfLength:3];
// NSString *str2 = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];
// NSLog(@"%@",str2);

    //3.根據(jù)光標(biāo)指定的位置往后讀取多少個(gè)字節(jié)彰导;
    //先移動(dòng)光標(biāo)到指定的位置
    [fh seekToFileOffset:7];
    NSData *data3 = [fh readDataOfLength:4];
    NSString *str3 = [[NSString alloc] initWithData:data3 encoding:NSUTF8StringEncoding];
    NSLog(@"%@",str3);

    //二.以只寫的形式打開文件
    NSFileHandle *fh = [NSFileHandle fileHandleForWritingAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/file.txt"]];
    
    //1.準(zhǔn)備數(shù)據(jù)
    NSString *dataStr = @"\n通知:今天下午學(xué)習(xí)日期類和時(shí)間戳";
    NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
    //2.寫入方式(默認(rèn)是以覆蓋的形式寫入)
    //設(shè)置光標(biāo)的位置到文件的尾部
    
    
    //或者設(shè)置光標(biāo)到某個(gè)具體的位置,從該位置開始寫敲茄,以覆蓋的形式往后寫位谋;
    [fh seekToEndOfFile];
    [fh writeData:data];
    
    
    
    //3.截取文件到指定的字節(jié)
    //截取文件到0個(gè)字節(jié),相當(dāng)于清空當(dāng)前文件內(nèi)容堰燎;
    [fh truncateFileAtOffset:0];
    //關(guān)閉文件
    [fh closeFile];
    
    
    //三.以讀寫的形式打開(讀寫的方法都可以使用)
    NSFileHandle *hangle = [NSFileHandle fileHandleForUpdatingAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/fileManager/file.txt"]];

三 NSDate

        //<1>獲取當(dāng)前系統(tǒng)時(shí)間     【***重點(diǎn)】默認(rèn)是GTM:格林威治時(shí)間
    NSDate *date = [NSDate date];
    NSLog(@"date1 = %@",date);
    
    //<2>以當(dāng)前時(shí)間為準(zhǔn)掏父,然后過了多少秒之后的時(shí)間   【****重點(diǎn)】
    NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:8*3600];
    NSLog(@"%@",date1);
    
    //<3>以1970/01/01  GTM時(shí)間為準(zhǔn) 然后過了多少秒后的時(shí)間
    NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:365*24*3600];
    NSLog(@"%@",date2);
    
    //<4>以某個(gè)具體的時(shí)間為基準(zhǔn),過了多少秒之后的時(shí)間   【掌握】
    NSDate *date3 = [NSDate dateWithTimeInterval:24*3600 sinceDate:date2];
    NSLog(@"%@",date3);
    
    //<5>遙遠(yuǎn)的將來(lái)的一個(gè)時(shí)間
    NSDate *date4 = [NSDate distantFuture];
    NSLog(@"%@",date4);
    
    //<6>遙遠(yuǎn)的過去的一個(gè)時(shí)間
    NSDate *date5 = [NSDate distantPast];
    NSLog(@"%@",date5);
    
    
    //<7>計(jì)算當(dāng)前時(shí)間與某個(gè)時(shí)間的時(shí)間間隔       【***重點(diǎn)】
    NSTimeInterval time1 = [date1 timeIntervalSinceNow];
    NSLog(@"time = %.2f",time1/3600);
    
    //<8>比較兩個(gè)時(shí)間秆剪,求兩個(gè)時(shí)間的間隔
    NSTimeInterval time2 = [date3 timeIntervalSinceDate:date2];
    NSLog(@"time2 = %.2f",time2/3600);
    
    
    //<9>比較兩個(gè)時(shí)間赊淑,返回較早的時(shí)間
    NSDate *earlierDate = [date2 earlierDate:date3];
    NSLog(@"earlierDate = %@",earlierDate);
    
    //<10>比較兩個(gè)時(shí)間,返回較晚的時(shí)間
    NSDate *laterDate = [date2 laterDate:date3];
    NSLog(@"laterDate = %@",laterDate);


        //1.創(chuàng)建一個(gè)時(shí)間戳對(duì)象
    NSDateFormatter *fomatter = [[NSDateFormatter alloc] init];
    
    //2.設(shè)置格式  【***重點(diǎn)】   <反斜杠不能用>

// fomatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss";
fomatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    //3.把時(shí)間對(duì)象轉(zhuǎn)換成字符串對(duì)象           【***重點(diǎn)】
    NSString * dataStr = [fomatter stringFromDate:[NSDate date]];
    NSLog(@"dataStr = %@",dataStr);
    
    //*****把字符串轉(zhuǎn)換成時(shí)間對(duì)象
    NSString *str = @"2016-5-13 9:00:00";
    NSDate *newDate = [fomatter dateFromString:str];
    NSLog(@"newDate = %@",newDate);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸟款,一起剝皮案震驚了整個(gè)濱河市膏燃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌何什,老刑警劉巖组哩,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異处渣,居然都是意外死亡伶贰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門罐栈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)黍衙,“玉大人,你說(shuō)我怎么就攤上這事荠诬±欧” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵柑贞,是天一觀的道長(zhǎng)方椎。 經(jīng)常有香客問我,道長(zhǎng)钧嘶,這世上最難降的妖魔是什么棠众? 我笑而不...
    開封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮有决,結(jié)果婚禮上闸拿,老公的妹妹穿的比我還像新娘空盼。我一直安慰自己,他們只是感情好新荤,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開白布揽趾。 她就那樣靜靜地躺著,像睡著了一般迟隅。 火紅的嫁衣襯著肌膚如雪但骨。 梳的紋絲不亂的頭發(fā)上励七,一...
    開封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天智袭,我揣著相機(jī)與錄音,去河邊找鬼掠抬。 笑死吼野,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的两波。 我是一名探鬼主播瞳步,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼腰奋!你這毒婦竟也來(lái)了单起?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劣坊,失蹤者是張志新(化名)和其女友劉穎嘀倒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體局冰,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡测蘑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了康二。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碳胳。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沫勿,靈堂內(nèi)的尸體忽然破棺而出挨约,到底是詐尸還是另有隱情,我是刑警寧澤产雹,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布诫惭,位于F島的核電站,受9級(jí)特大地震影響洽故,放射性物質(zhì)發(fā)生泄漏贝攒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一时甚、第九天 我趴在偏房一處隱蔽的房頂上張望隘弊。 院中可真熱鬧哈踱,春花似錦、人聲如沸梨熙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咽扇。三九已至邪财,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間质欲,已是汗流浹背树埠。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘶伟,地道東北人怎憋。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像九昧,于是被迫代替她去往敵國(guó)和親绊袋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • /**ios常見的幾種加密方法: 普通的加密方法是講密碼進(jìn)行加密后保存到用戶偏好設(shè)置( [NSUserDefaul...
    彬至睢陽(yáng)閱讀 2,941評(píng)論 0 7
  • 一铸鹰、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件癌别,這個(gè)獨(dú)立、封閉蹋笼、安全的空間展姐,叫做沙盒。它一...
    1d5cb7cff98d閱讀 1,779評(píng)論 0 0
  • 一姓建、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件诞仓,這個(gè)獨(dú)立、封閉速兔、安全的空間墅拭,叫做沙盒。它一...
    tzhtodd閱讀 1,283評(píng)論 0 2
  • iOS開發(fā)-文件管理(一) 一涣狗、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件谍婉,這個(gè)獨(dú)立、封閉...
    MacShare閱讀 1,806評(píng)論 0 6
  • 截止目前镀钓,OKCOIN上比特幣的價(jià)格是27201元穗熬。我第一次知道比特幣是在幾年前,那時(shí)候1300丁溅。第一次正式關(guān)注是...
    Jeff_孫閱讀 115評(píng)論 0 1