前回はAI, EPSファイルをPDFとして同じフォルダ内に保存するスクリプトでした。しかし、用が済んだらPDFを削除したい場合もあります。今回は指定した拡張子を持つファイルをまとめて削除するスクリプトです。このスクリプトはロックされているファイルは削除することができません。その際、いくつ削除できなかったかを最後に表示してくれます。また、ESTK上からであればJavaScriptコンソールに削除できなかったファイルの場所が表示されます。
(function(){
var fileExtType= prompt("削除するファイルの拡張子を入力してください", "*.pdf");
if (!fileExtType){ return; }
var allList = getAllFiles(fileExtType);
var delCounter = 0;
for(var i=0; i<allList.length; i++){
$.writeln(allList[i].fullName);
var flag = allList[i].remove();
if (!flag){
delCounter++;
$.writeln("削除できないファイル:"+allList[i].fullName);
}
}
if (delCounter > 0){
alert("削除できないファイルが"+delCounter+"つありました");
}
})();
// File Library
function getAllFiles(fileTypes, basePath,options){
options = options || {};
if(!basePath){
basePath = Folder.selectDialog("フォルダを選択してください");
if (!basePath){ return; } // キャンセルされた場合は処理しない
}
var allList = [];
// パラメータが文字の場合
if (typeof(fileTypes) == "string"){
getFileList(new Folder(basePath), fileTypes);
return toJapanese(allList, options.japanese);
}
// パラメータが配列の場合
if (fileTypes.push){
for(var i=0; i<fileTypes.length; i++){
getFileList(new Folder(basePath), fileTypes[i]);
}
return toJapanese(allList, options.japanese);
}
function getFileList(currentFolder, fileType){
var fileList = currentFolder.getFiles(fileType);
var fileList2 = currentFolder.getFiles("*"); // Sub Folder
allList = allList.concat(fileList);
for(var i=0; i<fileList2.length; i++){
if (fileList2[i].getFiles){
if (fileList2[i].name.charAt(0) == "."){ continue; }
getFileList(fileList2[i], fileType); // フォルダがある限り繰り返し
}
}
}
// 日本語に変換(nameJ, fullNameJ)
function toJapanese(fileList, flag){
if (!flag){ return fileList; }
for(var i=0; i<fileList.length; i++){
fileList[i].nameJ = File.decode(fileList[i].name);
fileList[i].fullNameJ = File.decode(fileList[i].fullName);
}
return fileList;
}
}
[
サンプルをダウンロード]