21st August 2021 at 2:23pm
サブフォルダも含めて、全てのファイルリストを取得したい場合があります。
"getFileList()"は、直下のファイルリストしか取得することができません。
"getFileList()"の説明に、the ListFilesRecursively macroのリンク先があります。
それに少し手を加えたものを下にあげます。
function getFileListRecursively(dir, lst_fnms)
{
list = getFileList(dir);
for(i = 0; i < list.length; i++)
{
if(endsWith(list[i], "/"))
{
lst_fnms = getFileListRecursively("" + dir + list[i], lst_fnms);
}
else
{
lst_fnms = Array.concat(lst_fnms,dir + list[i]);
}
}
return lst_fnms;
}使い方としては、以下のようになります。lst_fnmsにファイルリストの結果が出力されます。
lst_fnms = newArray();
dir = getDirectory("select dir");
lst_fnms = getFileListRecursively(dir, lst_fnms);
Array.show(lst_fnms);