码迷,mamicode.com
首页 > 其他好文 > 详细

Snail—OC学习之文件操作(非读写)

时间:2015-07-27 23:14:05      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

#import <Foundation/Foundation.h>

//宏定义一个文件夹的路径信息
#define path @"/Users/XXX/Desktop/Snail"
//宏定义一个文件的路径
#define filePath @"/Users/XXX/Desktop/Snail/Snail3/Snail.txt"

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

    @autoreleasepool {
        
        
        //-----------------------------遍历文件夹-----------------------------
        //文件管理器,是单例模式
        NSFileManager * manager = [NSFileManager defaultManager];
        /*
         浅层遍历
         参数:
         第一个参数:文件夹路径
         第二个参数:返回的报错信息
         */
        //定义报错信息
        NSError * error = nil;
        //返回值是字符串数组 浅层遍历 都是打开第一层文件的路径信息 错误信息要加取地址符号
        NSArray * array = [manager contentsOfDirectoryAtPath:path error:&error];
        if (error) {
            //出错的话 就打印出出错信息来
            NSLog(@"%@",error);
        }else{
            NSLog(@"%@",array);
        }
        
        //深层遍历 即把文件夹里面所有的文件路径信息打印出来
        NSArray * array2 = [manager subpathsOfDirectoryAtPath:path error:&error];
        NSLog(@"%@",array2);
        
        
        //---------------------------------创建文件---------------------------
        //判断文件是否存在 返回BOOL
        BOOL ret = [manager fileExistsAtPath:filePath];
        if (ret) {
            NSLog(@"文件存在");
        }else{
            /*
             创建文件 返回值也为BOOL。如果文件已经存在了,再创建就会覆盖点同名的文件
             第一个参数:文件路径
             第二个参数:文件内容
             第三个参数:文件属性及权限
             */
            BOOL ret2 = [manager createFileAtPath:filePath contents:nil attributes:nil];
            if (ret2) {
                NSLog(@"创建成功");
            }else{
                NSLog(@"创建失败");
            }
        }
        
        //-------------------------------查看文件属性及权限--------------------------
        //返回值是一个字典
        NSDictionary * dict = [manager attributesOfItemAtPath:filePath error:nil];
        /*
         NSFileCreationDate = "2015-07-27 12:32:44 +0000";
         NSFileExtensionHidden = 0;
         NSFileGroupOwnerAccountID = 20;
         NSFileGroupOwnerAccountName = staff;
         NSFileHFSCreatorCode = 0;
         NSFileHFSTypeCode = 0;
         NSFileModificationDate = "2015-07-27 12:32:44 +0000";
         NSFileOwnerAccountID = 502;
         NSFileOwnerAccountName = student;
         NSFilePosixPermissions = 420;
         NSFileReferenceCount = 1;
         NSFileSize = 0;
         NSFileSystemFileNumber = 1413025;
         NSFileSystemNumber = 16777218;
         NSFileType = NSFileTypeRegular;
         */
        NSLog(@"%@",dict);
        //取得文件的大小
        NSLog(@"%@",[dict objectForKey:@"NSFileSize"]);
        
        
        //--------------------------字符串与二进制NSData的转换-------------------------
        //参数均为编码格式
        NSString * string = @"wujian";
        //将字符串转换为OC的二进制形式
        NSData * data = [string dataUsingEncoding:NSUTF8StringEncoding];
        //将二进制数据转换为字符串
        NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        
        
        //-------------------------------文件的常用操作--------------------------------
        NSString * filePath1 = @"/Users/XXX/Desktop/Snail/Snail1/Snail.txt";
        NSString * filePath2 = @"/Users/XXX/Desktop/Snail/Snail3/Snail.txt";
        //文件的copy,即复制 如果此toPath参数的文件已经存在 则copy失败
        BOOL ret5 = [manager copyItemAtPath:filePath1 toPath:filePath2 error:nil];
        if (ret5) {
            NSLog(@"复制成功");
        }else{
            NSLog(@"复制失败");
        }
        
        //文件的移动 如果toPath中得文件已经存在 则移动失败
        BOOL ret6 = [manager moveItemAtPath:filePath1 toPath:filePath2 error:nil];
        if (ret6) {
            NSLog(@"移动成功");
        }else{
            NSLog(@"移动失败");
        }
        
        //文件的重命名 即移动文件 并且移动后的名字要改变 即移动文件
        
        //删除文件 不会经过废纸篓 直接删除 文件存在则删除成功,否则删除失败.
        BOOL ret4 = [manager removeItemAtPath:filePath2 error:nil];
        if (ret4) {
            NSLog(@"删除成功");
        }else{
            NSLog(@"删除失败");
        }
        
        NSString * path11 = @"/Users/XXX/Desktop/Snail/Snail3";
        //创建文件夹 目标文件夹存在 则创建失败
        [manager createDirectoryAtPath:path11 withIntermediateDirectories:YES attributes:nil error:nil];
        
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Snail—OC学习之文件操作(非读写)

标签:

原文地址:http://blog.csdn.net/qq1791422018/article/details/47090803

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!