scriptでファイル操作できないでしょうか?

[18205]scriptでファイル操作できないでしょうか? 投稿者:gaera 投稿日:2008/08/09 12:28:35
JavaScriptでファイル操作(移動・リネーム)したいのですが、方法がわかりません。
FileSystemOdjectを利用しようと思いましたが、使用できませんでした。
何か方法は無いでしょうか?
よろしくお願いいたします。
Re: scriptでファイル操作できないでしょうか? 投稿者:倉田タカシ 投稿日:2008/08/10 11:44:23
使うのは WSH でしょうか、それとも IllustratorPhotoshop の JavaScript でしょうか?
後者だと、FileSystemObject は使えません。Folder オブジェクトや File オブジェクトを使います。

「使用できませんでした」というのは、エラーが出て動作しなかったということでしょうか。ご質問の文章では FileSystemObject の綴りが違っていますが、同じようにスクリプトのほうでも綴り間違いがあるという可能性はないでしょうか?
Re: scriptでファイル操作できないでしょうか? 投稿者:gaera 投稿日:2008/08/10 18:15:11
倉田様 ありがとうございます。
Odjectは、打ち間違えです。お恥ずかしい。
IllsutratorのJavascriputで実行させたいと思っています。
ファイル名を変えようとFile objectのrenameを使ってみたのですが、
ファイルが勝手にプラグインホルダーの中に移動してしまいます。
(ファイル名は変わりました。)
何冊か本で調べて、WSHでFileSystemObjectを利用すれば出来るとわかりましたが、Illsutratorから実行するとエラーになり、何か方法はないかとここに書き込ませていただきました。
Re: scriptでファイル操作できないでしょうか? 投稿者:倉田タカシ 投稿日:2008/08/11 00:05:34
Illustrator の Javascript ですね。
お使いのバージョンがいくつかわかりませんが、Folder オブジェクト・File オブジェクトにはちょっと厄介な問題があって、ディレクトリを正しく指定するには、まず Illustrator 上で、手動で、目的のディレクトリに何かファイルを保存する必要があります。

たとえば、下のスクリプトは、最前面に開いている書類を保存せずに閉じて、その後でリネームするというものですが、まず対象のファイルを「別名で保存…」で同じ場所に同じ名前で上書きしてからでないと、正しく動作してくれません。

fObj = new File( activeDocument.fullName );
activeDocument.close( SaveOptions.DONOTSAVECHANGES );
alert( fObj.rename( "test_r.ai" ) );

WindowsXP SP2 で、バージョン10とCS2で動作が確認できています(多分CSやCS3でも動くと思います)が、これをファイルの上書きなしで実行すると、バージョン10だと「True」が出てリネームはできますが、「Program Files\Adobe\Illustrator 10.0.3\Support Files\Contents\Windows」にファイルが飛ばされます。CS2だと「False」が表示されてなにも起こりません。

リネームするファイルのディレクトリをスクリプト上に記述してある場合でも、まずそのディレクトリ上でなにかファイルを保存する必要があると思います。まずこれを試してみてください。
Re: scriptでファイル操作できないでしょうか? 投稿者:gaera 投稿日:2008/08/11 23:07:49
こちらの環境では、CraftRoboをインストールしている為か、\CutPlotROBO\Programにファイルが逃げ出します。
手動でSaveした後、実行する事で逃げ出さずにリネームする事が出来ました。
手動ってところがミソですね・・。自動化したいのに。
色々試行錯誤の後、操作したいのがTextなので別ファイル名に道に1行ずつ書き出してから元のファイルを削除することで解決いたしました。
ありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)