文件及目录操作

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //文件管理器

//        NSFileManager *fm1 = [NSFileManager defaultManager];

//        NSFileManager *fm2 = [NSFileManager defaultManager];

//        NSLog(@"fm1 = %p fm2 = %p", fm1, fm2);

        

        NSFileManager *fm = [NSFileManager defaultManager];

        //遍历目录(浅遍历)

        NSError *error = nil;

        

        NSArray *dicContent = [fm contentsOfDirectoryAtPath:@"/Users/zhixiang/Desktop/类与对象练习题.rtf" error:&error];

        if (dicContent) {

            NSLog(@"dicContent = %@", dicContent);

        }

        else

        {

            NSLog(@"error = %@",error);

        }

        

        //身遍历目录

        

//        dicContent = [fm subpathsAtPath:@"/Users/zhangxueming/Desktop/Test"];

//        if (dicContent) {

//            NSLog(@"dicContent = %@", dicContent);

//        }

        

        dicContent = [fm subpathsOfDirectoryAtPath:@"/Users/zhixiang/Desktop/类与对象练习题.rtf" error:&error];

        if (dicContent) {

            NSLog(@"dicContent = %@", dicContent);

        }

        else

        {

            NSLog(@"error = %@", error);

        }

        

        for (id name in dicContent) {

            NSLog(@"name = %@", [name pathExtension]);//获取文件扩展名

        }

        //获取目录属性

        NSDictionary *dicAttri = [fm attributesOfItemAtPath:@"/Users/zhixiang/Desktop/类与对象练习题.rtf" error:&error];

        if (dicAttri) {

            NSLog(@"dicAttri = %@", dicAttri);

        }

        else

        {

            NSLog(@"error = %@", error);

        }

        

        NSLog(@"fileSize = %llu", [dicAttri fileSize]);

        NSLog(@"fileDate = %@",[dicAttri objectForKey:@"NSFileCreationDate"]);

        

    }

    return 0;

}

 

 

 

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSFileManager *fm = [NSFileManager defaultManager];

#if 0

        //创建目录

        BOOL ret = [fm createDirectoryAtPath:@"/Users/zhangxueming/Desktop/Test/dic2/qianfeng" withIntermediateDirectories:NO attributes:nil error:nil];

        NSLog(@"ret = %d", ret);

        

        BOOL ret1 = [fm createDirectoryAtPath:@"/Users/zhangxueming/Desktop/Test/dic2/helloworld/dic/print" withIntermediateDirectories:YES attributes:nil error:nil];

        NSLog(@"ret1 = %d", ret1);

        

        BOOL isExist = [fm fileExistsAtPath:@"/Users/zhangxueming/Desktop/Test/dic2/daLian"];//判断指定路径下的文件或者目录是否存在

        if (!isExist) {

            NSLog(@"value = %d", [fm createDirectoryAtPath:@"/Users/zhangxueming/Desktop/Test/dic2/daLian" withIntermediateDirectories:NO attributes:nil error:nil]);

        

        }

#endif 

        

        //文件的创建

//        BOOL isExist = [fm fileExistsAtPath:@"/Users/zhangxueming/Desktop/Test/dic1/world/data.txt"];

//        if (!isExist) {

//            //二进制缓冲对象

//            NSData *data = [@"I love ios" dataUsingEncoding:NSUTF8StringEncoding];//把字符串转换成data类的对象

//            //NSLog(@"data = %@", data);

//            BOOL ret = [fm createFileAtPath:@"/Users/zhangxueming/Desktop/Test/dic1/world/data.txt" contents:data attributes:nil];

//            NSLog(@"ret = %d", ret);

//            

//        }

        //文件及目录拷贝

        //srcPath要包含需要拷贝的目录或者文件名

        //dstPath也要包含要拷贝的目录或者文件名

        //如果dstPath中已经有对应的目录或者文件, 拷贝动作不执行

       BOOL ret2 =  [fm copyItemAtPath:@"/Users/zhangxueming/Desktop/Test/dic1/world" toPath:@"/Users/zhangxueming/Desktop/Test/dic2/qianfeng/world" error:nil];

        NSLog(@"ret2 = %d", ret2);

        

        //文件后者目录移动(重命名)

        //路径不同实现剪切功能

        BOOL ret3 = [fm moveItemAtPath:@"/Users/zhangxueming/Desktop/Test/dic1/file.c" toPath:@"/Users/zhangxueming/Desktop/Test/dic2/daLian/file.c" error:nil];

        NSLog(@"ret3 = %d", ret3);

        //路径相同实现重命名功能

        BOOL ret4 = [fm moveItemAtPath:@"/Users/zhangxueming/Desktop/Test/dic2/daLian/file.c" toPath:@"/Users/zhangxueming/Desktop/Test/dic2/daLian/file2.c" error:nil];

        NSLog(@"ret4 = %d", ret4);

        

        //文件或者目录删除

        //直接从系统中删除, 不会放到废纸篓中,慎用

        BOOL ret5 = [fm removeItemAtPath:@"/Users/zhangxueming/Desktop/Test/file2.doc" error:nil];

        if (ret5) {

            NSLog(@"删除成功");

        }

        else

        {

            NSLog(@"删除失败");

        }

    }

    return 0;

}

 

 

 

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //以只读的方式创建文件句柄

        NSFileHandle *fileHander = [NSFileHandle fileHandleForReadingAtPath:@"/Users/zhangxueming/Desktop/Test/file.txt"];

        if (!fileHander) {

            return -1;

        }

        NSData *fileData = [fileHander readDataToEndOfFile];

        //NSLog(@"data = %@", fileData);

        NSString *fileStr = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];//把NSData类对象转换中字符串对象

        NSLog(@"fileStr = %@", fileStr);

        

        

        [fileHander seekToFileOffset:0];//移动文件指针到文件开头

        NSData *fileData1 = [fileHander readDataOfLength:20];

        NSString *fileStr1 = [[NSString alloc] initWithData:fileData1 encoding:NSUTF8StringEncoding];

        NSLog(@"fileStr1 = %@", fileStr1);

    }

    return 0;

}

 

 

 

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSFileHandle *fileHander = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/zhangxueming/Desktop/Test/file1.txt"];//以可读可写的方式创建文件句柄

        

//        NSData *fileData = [fileHander readDataToEndOfFile];

//        NSLog(@"fileStr = %@", [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding]);

        

        NSData *data = [@"千" dataUsingEncoding:NSUTF8StringEncoding];

        

        [fileHander writeData:data];

        

        [fileHander seekToFileOffset:0];

        

        NSData *fileData = [fileHander readDataToEndOfFile];

        NSLog(@"fileStr = %@", [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding]);

        

        //截断文件

        [fileHander truncateFileAtOffset:21];

        

        [fileHander seekToFileOffset:0];

        

        fileData = [fileHander readDataToEndOfFile];

        NSLog(@"fileStr = %@", [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding]);

        

        [fileHander synchronizeFile];//把文件内容同步到磁盘

        [fileHander closeFile];//关闭文件,文件句柄消失的时候, 文件自动关闭

    }

    return 0;

}

 

 

 

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSData *data = [NSData dataWithContentsOfFile:@"/Users/zhangxueming/Desktop/Test/file1.txt"];

        

        NSLog(@"data = %@", data);

        

        NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        NSLog(@"dataStr = %@", dataStr);

        

        data = [@"教育" dataUsingEncoding:NSUTF8StringEncoding];

        NSData *data1= [NSData dataWithContentsOfFile:@"/Users/zhangxueming/Desktop/Test/file1.txt"];

        NSMutableData *mulData = [NSMutableData dataWithData:data1];

        [mulData appendData:data];

        [mulData writeToFile:@"/Users/zhangxueming/Desktop/Test/file1.txt" atomically:YES];

    }

    return 0;

}

 

 

 

 

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //格林威志时间 1970年

        NSDate *date = [[NSDate alloc] init];

        //NSLog(@"date = %.2f", date.timeIntervalSinceReferenceDate);

        NSLog(@"data =%@", date);

//        NSLog(@"interval = %f", [[NSDate date] timeIntervalSinceDate:date]);

        //

//        NSLog(@"interval = %f", -[date timeIntervalSinceNow]);

        date = [date dateByAddingTimeInterval:120.00];

        NSLog(@"date = %@", date);

        

        NSLog(@"date = %@", [NSDate distantFuture]);

        NSLog(@"date = %@", [NSDate distantPast]);

        

    }

    return 0;

}

 

 

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSDateFormatter * datefm =[[NSDateFormatter alloc] init];

        datefm.dateFormat = @"YYYY/MM/dd HH:mm:ss/SS";

        //yyyy: 表示年份

        //MM: 表示月份

        //dd: 表示天数

        //HH: 表示小时(24进制) hh:12进制时间

        //mm: 表示分钟

        //ss: 表示秒

        //SS: 表示毫秒

        NSDate *date = [NSDate date];

        NSString *dateStr = [datefm stringFromDate:date];//把格林威志时间按照时间戳格式显示为当地时间

        NSLog(@"date = %@", dateStr);

        //- (NSDate *)dateFromString:(NSString *)string;

        NSDate *date1 = [datefm dateFromString:dateStr];

        NSLog(@"date1 = %@", date1);

        

    }

    return 0;

}

 

让明天,不后悔今天的所作所为
原文地址:https://www.cnblogs.com/-yun/p/4320480.html