自制根据后缀名筛选文件效率工具

2017-07-21  本文已影响134人  巧克力的qiao

前言

前几天在开发项目的时候,由于APP整体色调的改变,UI向我要工程中所有的图标要进行修改。但在Finder中工程文件Assets是这样显示的

屏幕快照 2017-07-21 下午3.10.56.png

那么多的文件夹中不单单只有png图片 ,还有json等乱七八糟的东西。作为程序员的我总不能一个个筛选给挑出来吧,那么就写了点简短的代码给筛选出来了。

简短的筛选代码

使用递归算法将所需文件类型筛选出:

NSMutableArray* getImage(NSArray *array){
NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableArray *imgArr = [NSMutableArray array];

for (NSString *path in array) {
    if ([path hasSuffix:@".png"]) {
        [imgArr addObject:path];
    }else{
        NSArray *pathArr = [fileManager subpathsAtPath:path];
        if (pathArr.count>0) {
            [imgArr addObjectsFromArray:getImage(pathArr)];
        }
        
    }
}
return imgArr;
}

之后使用NSFileManager将筛选的图片copy到一个新的文件夹中就算实现了。

    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *fileStr = [NSString stringWithFormat:@"%@/Desktop/ZiChanXunCha/ZiChanXunCha/Assets.xcassets/KeHuDaiKuan",NSHomeDirectory()];
    
    NSArray *subPath = [fileManager subpathsAtPath:fileStr];
    
    NSMutableArray *imgArr = getImage(subPath);
    NSLog(@"%@",imgArr);
    
    NSString *nFileStr = [NSString stringWithFormat:@"%@/Desktop/NEWFile",NSHomeDirectory()];
    
    for (NSString *file in imgArr) {
        NSString *endFileStr = [fileStr stringByAppendingPathComponent:file];
        NSString *toFileStr = [nFileStr stringByAppendingPathComponent:[file lastPathComponent]];
        [fileManager copyItemAtPath:endFileStr toPath:toFileStr error:nil];
    }

但想想这段代码可以更灵活的去筛选其它文件类型,于是就有了写一个Mac APP的想法。

GetSubPathFile的诞生

什么是GetSubPathFile和如何使用?

Select.gif

GetSubPathFile的实现

GetSubPathFile是通过Swift来进行编写的,主要就是使用递归算法,在此贴出部分主要代码:

GetSubPathFile软件我已导出,点此处获取,密码: qc4c
详细代码查看:GetSubPathFile,如果你喜欢这款工具的话,请给个Star。
️在此声明,GetSubPathFile为本人原创,请勿修改名称上架App Store,此代码仅供学习交流使用。如果你有更好的实现方法,请留言。

上一篇 下一篇

猜你喜欢

热点阅读