Adobe Photoshop CSでは画像処理だけでなくファイル処理も可能です。以前のバージョンである7や他のAdobe製品でも一応ファイル処理が可能です。一応というのは古いバージョンではバグで動作しない事がある、ということです。
大量にある特定のファイルだけ消したい事があります。(MacOS Xではターミナルから入力するだけでも簡単に削除できますが) 以下はAdobe Photoshop CSで特定のフォルダ内にあるjpegファイルのみ削除するスクリプトです。
folderRef = new Folder ("/temp/");
fileList = folderRef.getFiles("*.jpg");
for (i=0; i<fileList.length; i++) fileList[i].remove();
/temp/とあるのが削除対象となるJPEGファイルがあるフォルダです。/temp/と書くとルートディレクトリにあるtempフォルダになります。インターネット上でのURL指定と同じように書きます。MacOS Xの場合は日本語がフォルダ名に含まれると、うまく動かないことがあります。Windowsでは日本語が含まれていても大丈夫です。
2行目の"*.jpg"の指定を変えるとテキストファイルだけ削除したりすることができます。いくつかの例を以下に示します。
●gifファイルのみ削除
folderRef = new Folder ("/temp/");
fileList = folderRef.getFiles("*.jpg");
for (i=0; i<fileList.length; i++) fileList[i].remove();
●pdfファイルのみ削除
folderRef = new Folder ("/temp/");
fileList = folderRef.getFiles("*.pdf");
for (i=0; i<fileList.length; i++) fileList[i].remove();
●HTMLファイルのみ削除
folderRef = new Folder ("/temp/");
fileList = folderRef.getFiles("*.html");
for (i=0; i<fileList.length; i++) fileList[i].remove();
●テキストファイルのみ削除
folderRef = new Folder ("/temp/");
fileList = folderRef.getFiles("*.txt");
for (i=0; i<fileList.length; i++) fileList[i].remove();
このままだと常に特定のフォルダを指定しないといけません。そこで、フォルダを選択できるようにします。
folderRef = Folder.selectDialog("削除フォルダを選択してください")
if(folderRef != null)
{
fileList = folderRef.getFiles("*.jpg");
for (i=0; i<fileList.length; i++) fileList[i].remove();
}
フォルダを選択した場合のみJPEGファイルが削除されます。
状況によっては、あちこちのフォルダ内のファイルを削除したい場合があります。このような場合は以下のようになります。
delFolder = ["/temp/","/temp/icon/","/sample/"];
for (j=0; j<delFolder.length; j++)
{
folderRef = new Folder (delFolder[j]);
fileList = folderRef.getFiles("*.jpg");
for (i=0; i<fileList.length; i++) fileList[i].remove();
}
一番最初の行が削除するフォルダへのパスです。削除したいフォルダの数だけ,(カンマ)で区切って列記すればOKです。
最後に単純にある1ファイルのみ削除したい場合は以下のようになります。
fileRef = new File("/temp/0001.jpg");
fileRef.remove();
1行目の"/temp/0001.jpg"が削除するファイルパス(ファイル名)になります。
これらのスクリプトで削除されたファイルはゴミ箱に入るわけではなく、きれいさっぱり消されてしまうので注意してください。これらのスクリプト単独では、あんまり役に立たないかもしれませんが、定期的に処理するスクリプトなどと組み合わせると効果がでます(多分)。
[
サンプルをダウンロード]