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;
}