|
InDesign CS2 MACでの質問です。 javascriptでファイルを一つ上の階層等へ移動する際、 以下のようにしても、falseを返してしまいます。
===================== var fileName = File.openDialog("renameTEST"); fileObj = new File(fileName); alert(fileObj.rename("../renameFile.txt")); =====================
Windowsだとこれで上手く行くのですが 何故かMACだと移動先に相対パスや絶対パスが使えません。
どのようにしてファイルを移動すれば良いのでしょうか? (コピーして削除は時間が掛かるので避けたいです)
何か良い方法は有りませんか?教えて下さい。
|
No.3728 2009/10/24(Sat) 11:34:07
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
|
Re: javascriptでのファイル移動 / PICTRIX |
|
|
|
こんにちは。
詳しくないんですが、rename( newName )は、パスを含まない名前らしいです。 以下コピペ rename() fileObj.rename (newName) newName The new file name, with no path. Renames the associated file. Does not resolve aliases, but renames the referenced alias or shortcut file itself.
ひょっとして、changePath() を使うのかも。 関係なかったらごめんちゃい。 (以上Tools Guide CS3.pdfを見ての事ですが)
|
No.3729 2009/10/24(Sat) 15:31:19
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9
|
|
Re: javascriptでのファイル移動 / ezi |
|
|
|
PICTRIXさん 有難う御座います。 >>詳しくないんですが、rename( newName )は、パスを含まない名前らしいです。
renameでパスが使えないんですね(泣)。
>>ひょっとして、changePath() を使うのかも。
changePath()調べてみたんですが、 結局よく使い方が解かりません^^;
んー、 ファイル移動の方法が無いとは思えないんですが MACなんでScripting.FileSystemObjectを インスタンスする訳にもいきませんし…。
行き詰まってますです。
|
No.3733 2009/10/26(Mon) 12:04:42
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
|
|
Re: javascriptでのファイル移動 / せうぞー |
|
|
|
PICTRIXさんがおっしゃるように、おそらくrenameメソッドはパスを変更するものではないと思います。winで動作しているとしたらそれはたまたまかと。 changePathメソッドは内部的に保持するパス名を変えるものだと思います。つまりそれをファイルシステムに反映できません。
>ファイル移動の方法が無いとは思えないんですが JSでできないことはたくさんあります。 MacならUnixレイヤーをキックするのがよいかもしれません。 以下サンプル:
function run_command(my_command) { if (Folder.fs == "Macintosh") { my_command = 'do shell script "' + my_command + '"'; return app.doScript (my_command, ScriptLanguage.APPLESCRIPT_LANGUAGE); } }
var fileName = File.openDialog("renameTEST"); var org_fullpath = fileName.fsName;// fileName.changePath ("../../renameFile.txt");//相対パスの書き方がおかしい。バグ? var new_fullpath = fileName.fsName;
if (Folder.fs === "Macintosh") { run_command("mv '" + org_fullpath + "' '" + new_fullpath + "'"); }
(追記:2009-10-26T18:57:10+0900)ちょっとサンプル書き直しました。
|
No.3734 2009/10/26(Mon) 13:46:09
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; ja-jp) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9
|
|
Re: javascriptでのファイル移動 / せうぞー |
|
|
|
あ、そうだ。書き忘れ。 あたりまえのことですが、Unixレイヤーを叩くので日本語ファイル名は使えません。 nkfとかを挟めば解決するかもしれませんが... それとてOSとアプリケーションのバージョンによって対処が違うはず。 以下略(w
|
No.3735 2009/10/26(Mon) 13:51:07
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; ja-jp) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9
|
|
Re: javascriptでのファイル移動 / PICTRIX |
|
|
No.3736 2009/10/26(Mon) 15:37:38
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9
|
|
Re: javascriptでのファイル移動 / こに |
|
|
|
>>ひょっとして、changePath() を使うのかも。 CS2のスクリプトリファレンスとCS3のJavaScript Tool Guideを見比べてみましたが、 changePath()が使えるのはCS3からでは?(CS2のリファレンスには記述がありませんでした) せうぞーさんのサンプルスクリプトもCS2ではchangePath is not a functionと言われます。 CS2で運用するのでしたらコピーして削除するか、せうぞーさんのサンプルのようにUnixレイヤーをキックする方法になるのでは?
|
No.3738 2009/10/27(Tue) 11:41:19
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; ja-jp) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9
|
|
Re: javascriptでのファイル移動 / ezi |
|
|
|
PICTRIXさん せうぞーさん こにさん 有難う御座います。
Unixレイヤーを呼び出す方法を試してみました。 サンプルまで解かりやすく書いて頂いたおかげで、 何とかファイルの移動が出来るようになりました。 しかし、色々四苦八苦した結果、おっしゃってた通り、 bashさんに上手いこと日本語ファイル名が通らないみたいです…。
後の望みはAppleScriptを呼び出す方法でしょうか…。 せうぞーさんのブログを覗かせてもらい、試してみようかと思います。
もう少しもがいてみます。最悪、コピー後削除も視野に(泣) いつもながら皆さんの知識が羨ましい限りです。 頭がさがりますです。
|
No.3748 2009/10/27(Tue) 17:42:01
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
|
|