ActionScript3.0批量修改文件名
来源:互联网 发布:java博彦科技 编辑:程序博客网 时间:2024/05/22 15:28
最近做帧动画,美术发过来的美术资源总是一大堆,而且命名总是按照他们喜欢的格式命名,虽然有改名软件,但是还是要在上面点点的,总感觉很是不爽,因此写了一个小程序来批量改名,如果您需要就得改对应参数,废话不多说,直接上代码吧
package{import flash.display.Sprite;import flash.events.Event;import flash.filesystem.File;import flash.net.URLLoader;import flash.net.URLRequest;/** * 文件名修改工具 * @author nick * */public class FilePackge extends Sprite{/** * 加载器 */private var _loader:URLLoader = null;/** * 文件名路径 */private var _folderPath:String = "";/** * * 构造函数 */public function FilePackge(){//为了方便更改文件夹地址,我将文件地址配成了xml配置档,通过loader进行加载_loader = new URLLoader();_loader.addEventListener(Event.COMPLETE,onLoadComplete);_loader.load(new URLRequest("H:/floderPackage/flieConf.xml"));}/** * 加载完成回调 * @param e * */private function onLoadComplete(e:Event):void{if(_loader != null){_loader.removeEventListener(Event.COMPLETE,onLoadComplete);}var xml:XML = XML(_loader.data);_folderPath = String(xml.fileDir.dir.@url);//文件夹根目录var file:File = new File(_folderPath);var fileAry:Array = file.getDirectoryListing();//获取路径下所有文件for(var i:int = 0;i < fileAry.length;i++){var subFile:File = fileAry[i];if(subFile.isDirectory)//我这里需要将一个文件夹下所有文件按序编号,所有这个文件必须是文件夹{tryChgName(subFile);}}}/** * 尝试更改文件名 * */private function tryChgName(file:File):void{var fileAry:Array = file.getDirectoryListing();if(fileAry.length > 0){var subFile:File = fileAry[0];//这里判断扩展名是否我想改的类型 并且名字是否已经被修改了,如果修改了就不进行遍历了if(subFile.extension == "png" && subFile.name != "i0.png"){for(var i:int = 0;i < fileAry.length;i++){var pngFile:File = fileAry[i];//原始urlvar oldUrl:String = pngFile.url;//老url 我想有序修改的类型var newUrl:String = oldUrl.substr(0,oldUrl.lastIndexOf("/") + 1) + "i" + i + pngFile.type;//以下相当于一个粘贴复制 也是这里的关键var newFile:File = pngFile.resolvePath(newUrl);pngFile.copyTo(newFile,true);//最后一步将原始文件删除pngFile.moveToTrash();}}}}}}下面是xml中的配置
<fileConf><fileDir><dir url="file:///H:/nbgame/art/资源/战斗/test" /></fileDir></fileConf>
最后来看看改名效果怎么样吧~
上面的改名前,名字无序
改名后,名字有序了 ,一个简单方便的小程序,希望对各位有点帮助
阅读全文