标签:脚本 framework objective-c
先讲一下该脚步的功能: 更改MAC Ducuments 目录下 .png 图片的名称
准备工作:
1. 了解制作 脚本可执行文件 “.sh” 文件 的制作
2. 了解 OC 语言下 NSFileManager 类的使用
3. 了解 终端编译 OC 的 .m文件
接下来是制作方法:
1. 创建一个oc Command Line Tool 工程
在该工程中编写你需要的功能:
图片文件改名:
#import
<Foundation/Foundation.h>
int main(int
argc, const
char * argv[]) {
@autoreleasepool {
NSFileManager *fileManager = [NSFileManager
defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *documentPaths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *documentDir = [documentPaths
objectAtIndex:0];
NSError *error =
nil;
NSArray *fileList = [[NSArray
alloc]
init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
fileList = [fileManager contentsOfDirectoryAtPath:documentDir
error:&error];
//
以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
NSMutableArray *fileArray = [[NSMutableArray
alloc]
init];
//在上面那段程序中获得的fileList中列出文件夹名
for (NSString
*file in fileList) {
NSString *path = [documentDir
stringByAppendingPathComponent:file];
if ([path
hasSuffix:@".png"])
{
[fileArray addObject:path];
}
}
NSLog(@"Every Thing in the dir:%@",fileList);
NSLog(@"All folders:%@",fileArray);
for (int
i = 0; i < fileArray.count;
i++) {
NSString *filePath = fileArray[i];
NSString *toPath = [NSString
stringWithFormat:@"%@/tree%d.png",
documentDir,i+1];
[fileManager copyItemAtPath:filePath
toPath:toPath
error:nil];
}
}
return
0;
}
2. 接下来就是 终端下编译 .m 文件
打开终端 cd 到.m文件目录下 运行命令: gcc -framework Foundation -o myscript main.m
你就会得到一个 myscript 的可执行文件
3. 制作可执行脚本文件 .sh文件
打开终端 输入命令:
cd Documents
mkdir MyScript
vim ChangeImgName.sh
进入编辑模式, 输入 i 进行编辑
编辑内容为:
#! /bin/bash
./myscript
然后按 control+c 退出编辑状态 输入 :wq 保持退出
命令输入: chmod +x ./changeImgName.sh
完成了关键的一步,继续往下看:
4. 拷贝步骤2创建的 myscript 可执行文件 到 ~/Documents/MyScript 目录下, 即ChangeImgName.sh 文件的同级目录
5. 开始尝试吧:
cd 到 ChangeImgName.sh 的目录下 即: ~/Documents/MyScript
(其实现在就是在这个目录下)
输入命令 ./ChangeImgName.sh
怎么样是不是没有反应,没反应就对了, 现在还差一步就是往 ~/Documents 目录下放几个 .png格式的图片, 然后你就可以发现~/Documents 目录下多了几个不同名称的图片,真的有效哦,快来试试吧
MAC 下 用 OC 制作简单的脚本
标签:脚本 framework objective-c
原文地址:http://blog.csdn.net/u011410092/article/details/45249111