†REXXのどろぬま†

VFATのロング名表示

作成開始日 2015.05.30
最終更新日 2015.06.10

今さらVFATを用いることも少ないとは思うが、MP3レコーダーなどでSDカード(2GB以下)を使う場合は、まだまだVFATのロング名に出くわすことがある。もちろん、OS/2側でVFATに対応すれば良いのだが、余分なIFSを組み込むのも嫌なので、私はvfat2eaというユーティリティを使用している(Hobbesで入手可能)。これを使うと、VFATのロング名をOS/2の拡張属性に変換して対象メディアに書き込んでくれる。これでOS/2でもロング名が表示できるようになる。

ただし、ロング名が表示可能なのはPMのみで、コマンドラインでは表示不可。 これはvfat2eaの問題ではなく、OS/2のコマンドラインの仕様の問題。 じゃあ、コマンドラインではロング名(拡張属性)は無視されるのかと言うと、 ファイルのコピー時には拡張属性もしっかりコピーされる。 それで表示はできないってどう言うこと?  おまけに、DOSモードではDIR /Rで表示可能なんだから、頭が痛くなってくるorz

と言う事で、コマンドラインでロング名のDIRくらい取れるようにしてみた。

/* LDIR.CMD ロングファイル名表示*/
Call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
Call SysLoadFuncs

rc=SysFileTree('*.*',files,'FO')	/* マスクは勝手に設定してね */
DO n=1 TO files.0
  rc=SysGetEA(files.n,".longname","longname")
  PARSE VAR longname 5 lname
  fname=FILESPEC('N',files.n)
  fname=fname||COPIES(' ',30-LENGTH(fname))
  SAY fname lname
end
【注意点】


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