博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC文件操作习题
阅读量:6823 次
发布时间:2019-06-26

本文共 2402 字,大约阅读时间需要 8 分钟。

hot3.png

FJFileManager.h

#import <Foundation/Foundation.h>

FJFileManager : NSObject

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

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

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

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

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

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

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

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

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


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

你可能感兴趣的文章
R对term进行层次聚类完整实例(tm包)
查看>>
SQL Server创建用户并分配权限
查看>>
python 反转列表的3种方式
查看>>
[NOIP2002]字串变换 T2 双向BFS
查看>>
linux上我认为最适合编程和使用的字体
查看>>
go环境import cycle not allowed问题处理
查看>>
GZFramework.DB.Core初始化
查看>>
Markdown 语法
查看>>
Hadoop下各技术应用场景
查看>>
django template
查看>>
Tomcat乱码问题
查看>>
HDU 1564 Play a game
查看>>
URL
查看>>
053_Salesforce Lightning与Classic对比
查看>>
volley3--Volley类
查看>>
topcoder srm 620 div1
查看>>
20151124001 关闭C#主窗体弹出是否关闭对话框
查看>>
java 判断元素是否在数组内
查看>>
java。equal()和== 的区别
查看>>
jsp九大内置对象
查看>>