
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptで文字列の特定文字...
-
javascriptで複数キーワード検...
-
GASでundefinedエラーが出ます
-
cgiでポーリングして取得したデ...
-
C#OpenCv V4にのエラーに関する...
-
C#で、ContextMenuStripに動的...
-
IE8で種類が一致しませんとエラ...
-
JavaScriptで平日のみをカウン...
-
JScriptでExcelの全シートにア...
-
テキスト改行(split+vbCrLf)に...
-
jqGridについて
-
VSCODE[Python]の設定について
-
ASP.NET MVCでObjectをjsに渡す
-
台形公式
-
var_dumpのdump意味はを知りた...
-
コールバック関数(?)をループし...
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#で、ContextMenuStripに動的...
-
C#OpenCv V4にのエラーに関する...
-
javascriptでiframeのURL変更は?
-
ASP.NET MVCでObjectをjsに渡す
-
ASP.NETのコントロールの値をJa...
-
ローカルにあるファイルを検索...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
船のゲームを作っているのです...
-
商品コードを入力で、商品名、...
-
スクリプトのフルパス取得したい
-
HTMLにWSHを組み込む
-
Javascript 特定のフォルダのデ...
-
XMLの空白要素をJavas...
-
google feed api
-
html javascript リンク先アド...
-
JavaScriptで平日のみをカウン...
-
$("body").height();と$("body"...
-
シンプルなweb版スタンプラリー...
おすすめ情報