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)
}
No.1ベストアンサー
- 回答日時:
Adobe の API はよく知りませんので推測ですが
// ファイル保存
var currentProject = app.project;
currentProject.save();
var currentFile = currentProject.file;
// バックアップ先のフォルダ
var backupPathName = currentFile.path + "/old";
var backupFolder = new Folder(backupPathName);
if (!backupFolder.exists) backupFolder.create();
// バックアップ先のファイル
var currentFileName = currentFile.name;
var m = /^(.+)(\.\w+)$/.exec(currentFileName);
var baseName = m? m[1]: currentFileName;
var extName = m? m[2]: "";
var i, suffix, backupFile;
for (i=1; i<1000; i++) {
suffix = "_" + ("000" + i).substr(-3);
backupFile = new File(backupPathName + "/" + baseName + suffix + extName);
if (!backupFile.exists) break;
backupFile = null;
}
// バックアップ保存
if (backupFile) currentFile.copy(backupFile);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Ruby vscode 文字化け 1 2022/05/21 19:17
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript gasについて 1 2022/05/31 21:51
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryのload()を使用して外部...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
Javaで避けるゲームを作ってい...
-
【JavaScript】数当てゲームを...
-
C#で、ContextMenuStripに動的...
-
javaScript textareaの一行あた...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
javascriptにお詳しい方に質問...
-
商品コードを入力で、商品名、...
-
JavaScriptで決まった「時刻」...
-
ホームページの最終更新日を他...
-
C# 演算 奇数と偶数 表現の仕方
-
特定のclassを表示、非表示にする
-
なぜmatchメソッドがエラーにな...
-
javascriptでカウントダウンタ...
-
ASP.NET MVCでObjectをjsに渡す
-
idを使わずにonclickで自身の要...
-
Linux バイナリ実行できない "...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報