OC文件操作习题

FJFileManager.h

#import <Foundation/Foundation.h>


@interface FJFileManager : NSObject


//封装方法的时候,对象方法和类方法的选择:

//1.能用类方法的尽量使用类方法

//2.开始设计方法的时候先设计成对象方法,方法实现完成后

//看方法中是否需要使用成员变量,如果不需要成员变量,就将该方法变成类方法。

//(直接将“-”变成"+");

//3.再根据这个类向外提供的方法的性质(类方法还是对象方法)来决定要不要

//提供快速创建对象的方法;(暴露在.h文件中的方法就是向外提供的方法.)


/**整理文件的方法*/

+(void) sortDirectoryWithPath :(NSString *) path;


@end


FJFileManager.m

#import "FJFileManager.h"


@implementation FJFileManager


+ (void)sortDirectoryWithPath:(NSString *)path{

    

    //1.遍历需要处理的文件夹得到文件名;

    NSFileManager *manager = [NSFileManager defaultManager];

    NSArray *fileArray = [manager contentsOfDirectoryAtPath:path

                                                      error:nil];

    //2.遍历文件夹的内容

    for (NSString *fileName in fileArray) {

        

        //拼接每个文件的路径

        NSString *filePath = [path stringByAppendingPathComponent:fileName];

        BOOL isDic;//判断是否是文件夹的变量

        [manager fileExistsAtPath:filePath isDirectory:&isDic];//判断文件是否存在并且判断是否是文件夹

        

        //如果是文件夹创建一个专门存放文件夹的DIR(如果有该文件夹就不再创建)

        if (isDic) {

            

            NSString *dirPath = [path stringByAppendingPathComponent:@"DIR"];

            [manager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:nil];

            //把当前文件夹移动到DIR文件夹中

            NSString *movePath = [dirPath stringByAppendingPathComponent:fileName];

            [manager moveItemAtPath:filePath toPath:movePath error:nil];

            

            

        }else{//如果是文件

            

            [self sortFileWithName:fileName Path:path];

            

            

        }

        

    }

    

    

    

    

}

+ (void) sortFileWithName:(NSString *) fileName

                     Path:(NSString *) path{

    

    

    //1.拿到文件的后缀

 //   NSString *fileType = [[fileName componentsSeparatedByString:@"."] lastObject];

    

    NSString *type = [fileName pathExtension];//文件路径的后缀

    

    //2。将后缀变成大写

    NSString *upperType = [type uppercaseString];

    //3.创建大写名的文件夹

    NSString *upperPath = [path stringByAppendingPathComponent:upperType];

    

    NSString *destPath = [upperPath stringByAppendingPathComponent:fileName];

    [[NSFileManager defaultManager] createDirectoryAtPath:upperPath

                              withIntermediateDirectories:YES attributes:nil error:nil];

    

    //4.移动文件

    NSString * sourcePath = [path stringByAppendingPathComponent:fileName];

    

    [[NSFileManager defaultManager] moveItemAtPath:sourcePath toPath:destPath error:nil];

    

    

    

}




main.m

//

//  main.m

//  文件操作博客

//

//  Created by 千锋 on 16/3/25.

//  Copyright (c) 2016 com.SWPU.EDU. All rights reserved.

//


#import <Foundation/Foundation.h>

#define PATH @"/Users/IOS1601/Desktop/homework"

#import "FJFileManager.h"

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

    @autoreleasepool {

        

    

        

        [FJFileManager sortDirectoryWithPath:PATH];

        

        

        

    }

    return 0;

}















转载于:https://my.oschina.net/luhoney/blog/647534

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值