質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1560閲覧

特定のフォルダのデータの番号を見て、インクリメント保存したい

xu0124

総合スコア31

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/01/04 12:44

AdobeのJavascript

保存する度に数値をインクリメントしたいです。

①プロジェクトファイルを保存(ABC.aep)

②保存すると、oldフォルダにバックアップデータが保存されます(ABC_001.aep)

ここまではできたのですが、もう一度保存するとABC_002.aepとならずに、ABC_001.aepに上書きされてしまいます。

ABC_001.aepの同階層にある特定のフォルダ「oldフォルダ」の中(ABC_001.aep)を見て、インクリメントで保存(ABC_002.aep)するにはどのようにしたらよろしいでしょうか?

var currentProject = app.project; var currentFile = currentProject.file; if (!currentFile) { currentProject.save(); } else { currentProject.save(currentFile); var currentFileName = currentFile.name; var namePos = currentFileName.lastIndexOf("."); if (namePos != -1) { currentFileName = currentFileName.substring(0, namePos); } folderName = currentFile.path+"/"+"old"; folderObj = new Folder(folderName); folderObj.create(); var currentProject = app.project; var currentFile = currentProject.file; var extPos = currFileName.lastIndexOf("."); var ext = ""; if (extPos != -1) { ext = currFileName.substring(extPos, currFileName.length); currFileName = currFileName.substring(0, extPos); } var incrementer = 0; if (currFileName.charAt(currFileName.length -4) == "_") { incrementer = currFileName.substring(currFileName.length - 3, currFileName.length); currFileName = currFileName.substring(0, currFileName.length -4); } incrementer++; var istring = incrementer + ""; if( (incrementer / 10) < 1.0) { istring = "0" + istring; } if( (incrementer / 100) < 1.0) { istring = "0" + istring; } var newFile = File(folderName + "/" + currentFileName +"_"+ istring); flag = currentProject.save(newFile); newFile.copy(currentFile); app.open(currentFile) }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最近触っていないので情報が古いかもしれませんが、fileObj.exists; で書き込む前に同名のファイルが無いかをチェックして同名がなくなるまでカウントアップしていくか、folderObj.getFiles(); でファイルリストを読み出して一番大きな数+1 するようにするとかでしょうか。

【Adobe Photoshop CC自動化作戦】
http://www.openspc2.org/book/PhotoshopCC/

【ファイルが存在するかどうか調べる|Photoshop CC自動化作戦】
http://www.openspc2.org/book/PhotoshopCC/easy/file/021/index.html

【フォルダ内のファイル一覧を取得する|Photoshop CC自動化作戦】
http://www.openspc2.org/book/PhotoshopCC/easy/file/033/index.html

投稿2017/01/04 16:49

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xu0124

2017/01/05 13:09

ありがとうございます。 普段コードを書くことはないので、提示された方法を使っての解決は難しいように思えました。 たとえばデスクトップにabc.aepというデータがあり その場合 var currentFile = currentProject.file; は ~/Desktop/abc.aepという結果になるのですが、 この部分を~/Desktop/old/abc_001.aep と取得できれば、行けるような気がします。 ただ var currFile= app.project.file.path + "/" +"old"+"/"+ "abc_001.aep"; としても その後の var currFileName = currFile.name; ではファイル名の取得に失敗してしまいます。
kei344

2017/01/05 13:21

> 普段コードを書くことはないので、提示された方法を使っての解決は難しいように思えました。 比較的初学者のためのサイトを提示したつもりですが、わからないのであればどこかに外注するなどされてはいかがでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問