†REXXのどろぬま†

表示形式を指定してフォルダを開く

作成開始日 2015.06.15
最終更新日 2014.08.22

ネットワークドライブ上のフォルダなどは、システムをブートする度に表示形式が初期化されて非常に不便である。恐らく、拡張属性をサポートしていないのが原因だろうが、サポートしたらしたで別の問題が出て不便である(各ファイルごとに拡張属性ファイルが作成され、ファイル数が2倍になってしまう)。で、まあ、拡張属性なしのままで、自動的に表示形式を変更するスクリプトを作ってみた。

ポイントは以下の3点;

  1. 表示形式の設定にはSysSetObjectData関数を使用する。
  2. フォルダのオープンにはSysOpenObject関数を使用する。
  3. ソートの基準の設定はSysSetObjectData関数では不可?
たとえば、「P:\OUJ」というフォルダを、フロー形式の小型アイコンで、ソート順を常時保持してオープンするには;
/* Open Folder */
Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
Call SysLoadFuncs

rc=SysSetObjectData('P:\OUJ','ICONVIEW=FLOWED,MINI;ALWAYSSORT=YES')
rc=SysOpenObject('P:\OUJ',1,1)
言うまでもないと思うが、「ICONVIEW=FLOWED,MINI」がフロー形式の小型アイコンを意味し、「ALWAYSSORT=YES」がソート順の保持を意味する。ただし、このままでは、ソートの基準は「名前」にしかならない。実用性を考えると「タイプ」でソートしたいところだが、該当するセットアップ・ストリングが見つからなかった。どうも、フォルダに対してメッセージ(SORTTEXTとかSORTTYPEとか?)を送付するらしいのだが、詳しいことは今後の課題。

なお、サブフォルダまで設定を変更したい場合は、次のような要領で;

/* Open Folder */
Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
Call SysLoadFuncs

rc=SysSetObjectData('P:\OUJ','ICONVIEW=FLOWED,MINI;ALWAYSSORT=YES')
rc=SysOpenObject('P:\OUJ',1,1)

rc=SysFileTree('P:\OUJ\',d,'DO')
Do n=1 to d.0
  rc=SysSetObjectData(d.n,'ICONVIEW=FLOWED,MINI;ALWAYSSORT=YES')
End


【REXXのどろぬま目次】 【ホーム】