用Objective-C写了一个简单的批量更改文件名的程序

简介:

前言:因为本人要高仿一个app,从app中解压asserts得到的所有图片文件,文件名都带有~iPhone这个干扰的名字,为了去除这个~iPhone这个字符串,所以本人写了个简答的批量更改所有文件名的程序。

程序员就是应该会利用程序来帮自己偷懒,如果你一个个文件手动去改,那你就太low了啊。

因为这个程序用到的NSFileManager的很多方法本人不是很熟悉,也是花了点时间去熟悉NSFileManager的一些方法,所以写下这个笔记做个笔记,省的下次又需要却还是遗忘了方法。

 

我的基本需求,在啰嗦一下下哈:

一个文件目录下有上百个图片文件,文件名都带有~iPhone。写一个程序,删除所有文件名中的这个字符串~iPhone,或者是重命名所有文件,不要有~iPhone这个字符串。

 

代码:

这个代码利用了第三方别人封装好的正则表达式类,然后再进一步实现我自己的需求

这个挺好用的正则表达式的类在github上:https://github.com/bendytree/Objective-C-RegEx-Categories

然后就是:

//
//  main.m
//  ChangeFileName
//
//  Created by HEYANG on 16/4/3.
//  Copyright © 2016年 HEYANG. All rights reserved.
//
//  cnBlog:http://www.cnblogs.com/goodboy-heyang/
//  github:https://github.com/HeYang123456789
//

//-(BOOL)moveItemAtPath:from toPath:to error:err 重命名或移动一个文件(to 不能是已存在的)

// 这里输入文件目录
#define FileDirectory @"/Users/HeYang/Desktop/hello"


#import <Foundation/Foundation.h>
#import "RegExCategories.h"


// 替换文件名这个字符串,去除文件名中~iphone这个字眼
NSString* changeString(NSString* string){
    // 直接使用正则表达式,替换掉
    NSString* result = [RX(@"~iphone") replace:string
                                          with:@""];
    return result;
}

// 获取文件名,并去除~iPhone
NSString* getFileNameFromDirectory(NSString* directory)
{
    NSFileManager* manager = [NSFileManager defaultManager];
    NSArray *dirArray = [manager contentsOfDirectoryAtPath:directory error:nil];
    for (NSString* str in dirArray) {
        // 原来的文件目录
        NSString* fromFileName = [FileDirectory stringByAppendingPathComponent:str];
        // 改变之后的文件名
        NSString* changedStr = changeString(str);
        // 改变之后的文件目录
        NSString* toFileName = [FileDirectory stringByAppendingPathComponent:changedStr];
        // 替换,其实也是重命名
        [manager moveItemAtPath:fromFileName toPath:toFileName error:nil];
    }
    return nil;
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        getFileNameFromDirectory(FileDirectory);
        
    }
    return 0;
}
项目源码备份到百度云链接:  http://pan.baidu.com/s/1dFjUV5J  密码: e5q9
相关文章
|
程序员 iOS开发
《编写高质量代码:改善Objective-C程序的61个建议》——导读
我一直在思考,如何才能编写出高质量、优秀的代码,我也在不停地探寻,希望找出类似于武侠小说中所说的武功秘籍,在编写代码一途可以帮助大家走“捷径”从而达到事半功倍的效果。
1041 0