你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> 用Objective-C寫了一個簡單的批量更改文件名的程序

用Objective-C寫了一個簡單的批量更改文件名的程序

編輯:IOS編程技術

前言:因為本人要高仿一個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

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved