DTP駆け込み寺

No.20604へ返信

記事投稿フォーム
補助
送信

[ 返信 ]

Re^4: フォルダからindd.を検索して

ご親切にどうもありがとうございました。
大変助かります。
作者様(z-様も)への権利関係には充分に配慮した上で使用させていただきます。
ただ、今は動作確認をする環境がないため、月曜日にまたテストしてみます。
なんとか目処が立ち始めて胸を撫で下ろしている状況でございます。

> ひとまず簡単なテストで動作したので試してみてください。
> 4行目の depthValue = 3; というところで「何階層まで見る」か定義しているので
> 解釈違いがあったら適宜書き換えてください。
>
> ------------------
> var folderObj = Folder.selectDialog("フォルダを選択してください");
> var fileList = [];
> var dirDepth = 1;
> var depthValue = 3;
>
> findIndd(folderObj, dirDepth);
> alert(fileList.length + " 個のinddファイルが見つかりました");
>
> for (var i = 0; i < fileList.length; i++){
> fileObj = new File(fileList[i].fsName);
> savePath = fileObj.fsName.replace(/\.indd$/i, ".pdf");
> app.open(File(fileObj));
> app.activeDocument.exportFile(ExportFormat.pdfType, savePath, false, "[最小ファイルサイズ]");
> app.activeDocument.close(SaveOptions.no);
> }
>
> alert("完了");
>
> function findIndd(dir, dep){
> var files = dir.getFiles();
> for(var i = 0; i < files.length; i++){
> if(files[i].displayName.match(/\.indd$/i)){
> fileList.push(files[i]);
> continue;
> }
> if(dep < depthValue && files[i].constructor.name == "Folder"){
> findIndd(files[i], dep + 1);
> }
> }
> }
> ------------------
>
> 本来、フリーで公開されているスクリプトでも著作権の主張や
> 加工・二次配布の禁止(のお願い)など記載してある場合がありますが
> tu-kazu.jpさんのサイトで特にそういう記載が見つけられなかったのと
> 元のスクリプトの原型がほとんど残らなかったので、まあいいかと…

[20604] メディカル12 (2021/08/21 Sat 22:48)