用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 ;
- }
项目源码备份到百度云链接: http://pan.baidu.com/s/1dFjUV5J 密码: e5q9
用Objective-C写了一个简单的批量更改文件名的程序的更多相关文章
- 初学shell,为了练习sed,写了个简单的批量修改文件名的脚本,后来执行时发现系统竟然自带有一个rename命令,顺便也记下了
1 #!/bin/bash 2 <<Comment 3 批量修改文件名的脚本 4 2015/10/24 5 webber 6 Comment 7 ARGS=2 ...
- 只是一个用EF写的一个简单的分页方法而已
只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...
- 写了一个简单的CGI Server
之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...
- 自己写的一个简单PHP采集器
自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...
- 写了一个简单可用的IOC
根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录 只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...
- 写了一个简单的 Mybatis
写了一个简单的 Mybatis,取名 SimpleMybatis . 具备增删改查的基本功能,后续还要添加剩下的基本数据类型和Java集合类型的处理. 脑图中有完整的源码和测试的地址 http://n ...
- 利用HttpClient写的一个简单页面获取
之前就听说过利用网络爬虫来获取页面,感觉还挺有意思的,要是能进行一下偏好搜索岂不是可以满足一下窥探欲. 后来从一本书上看到用HttpClient来爬取页面,虽然也有源码,但是也没说用的HttpClie ...
- 今天写了一个简单的新浪新闻RSS操作类库
今天,有位群友问我如何获新浪新闻列表相关问题,我想,用正则表达式网页中取显然既复杂又不一定准确,现在许多大型网站都有RSS集合,所以我就跟他说用RSS应该好办一些. 一年前我写过一个RSS阅读器,不过 ...
- cJSON: 一个用c写的一个简单好用的JSON解析器
转自:http://blog.csdn.net/chenzhongjing/article/details/9188347 下载地址: http://sourceforge.net/projects/ ...
随机推荐
- Python语言特性之1:函数参数传递
问题:在Python文档中好像没有明确指出一个函数参数传递的是值传递还是引用传递.如下面的代码中"原始值"是不放生变化的: class PassByReference: def _ ...
- ChatRichTextBox : RichTextBox
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...
- WinForm GDI+ 资料收集
UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面, ...
- DataTable转换为List<T>或者DataRow转换为T
这段时间开发ASP.NETMVC应用程序,从数据库获取数据之后,需要把记录转换为数据集在视图中显示.我们需要把DataTable转换为List<T>或者DataRow转换为T. 本篇中可以 ...
- css背景图
- Java --HashMap源码解析
兴趣所致研究一下HashMap的源码,写下自己的理解,基于JDK1.8. 本文大概分析HashMap的put(),get(),resize()三个方法. 首先让我们来看看put()方法. public ...
- python统计列表内元素个数
代码如下: list01 = ['a','b','c','a','c'] set01 = set(list01) print(set01) dict01 = {} for item in set01: ...
- Java经典实例:使用正则表达式:测试模式
import java.util.regex.Pattern; /** * Created by Frank * 在Java中使用正则表达式:测试模式 */ public class RESimple ...
- 【转】Nginx区分PC或手机访问不同网站
原文链接:http://www.nginx.cn/784.html 近几年来,随着手机和pad的普及,越来越多的用户选择使用移动客户端访问网站,而为了获取更好的用户体验,就需要针对不同的设备显示出最合 ...
- [Android] 建立与使用Library
[Android] 建立与使用Library 前言 使用Eclipse开发Android项目时,开发人员可以将可重用的程序代码,封装为Library来提供其他开发人员使用.本篇文章介绍如何将可重用的程 ...