IBM i には私達がよく知るライブラリー・システムの他に
IFS ( = Integrated File System :統合化ファイル・システム)と呼ばれる
UNIX互換のファイル・システムがあります。
ライブラリー・システムのデータはレコード単位ですが
IFS に保存されるストリーム・ファイルとは同じ長さのレコード型式ではなく
最初から最後までひもで繋がったようなファイル型式なので
ストリーム・ファイルと呼ばれています。
ストリーム・ファイルには HTML, JavaScript, 画像ファィル, ...など
UNIX だけでなく Windows や Linux, AIX (=IBM が提供している UNIX)などとも
互換性があります。
ディレクトリー( またはフォルダー)
IFS には Windows のディレクトリーと同じようなディレクトリーによって
ツリー構造に区切られています。
ディレクトリーは、またフォルダーと呼ばれる場合もあります。
Windows のディレクトリーは C:\Document\MYFile.txt
のように通貨記号 \ によって区切られますが
IFS のディレクトリーは /SPOOLWTR/TEMPLATE/MYFILE.HTM のように
スラッシュ記号(/)によって区切りを表現します。
IFS には Windows のようなドライブ名(C,D, ..)はありません。
最上位のディレクトリー(/)はルート・ディレクトリーまたは
単にルート(Root)と表現します。
ディレクトリー関連のコマンド
CRTDIR |
ディレクトリーの作成 [例] CRTDIR DIR('/TEMP/MYDIR') DTAAUT(*RWX) OBJAUT(*ALL) |
---|---|
CHGDIR | ディレクトリーの変更 |
RMVLNK |
ディレクトリーの削除 [例] RMVLNK DIR('/TEMP/MYDIR') |
ストリーム・ファイルの名前
使用することができ、拡張子も使えますが、新規に作るのであれば
慣れないうちは英小文字は使わないでください。
CCSID : 5026 の環境での英小文字の使用は半角カナと見なされて
しまいます。
また IBM i の開発者は命名に特殊記号: #, $, \, @,...などを
好んで使う傾向にありますが、特殊記号は絶対に使用しないで
ください。
特殊記号を使うとブラウザや PC オーガナイザー, XML で
エンコード(コード化)が必要となりエンコードを行わないと
動作しなくなったりして原因の究明に手間取ったりします。
余計なトラブルを避けるために特殊記号の使用は絶対に
しないようにすることが賢明です。
CCSID
IFS のディレクトリーやストリーム・ファイルにも
CCSID が登録されています。
5250エミュレータ環境で CRTDIR などの操作によって
ディレクトリーを作成したときは、CCSID を明示的に
指定しない場合はジョブの CCSID が作成された
ディレクトリーの CCSID として採用されます。
したがって CCSID:5026 環境で英小文字のディレクトリーを
作成したとしても、それは実は半角カナだと誤解されると思います。
ストリーム・ファイルを扱うときには CCSID にも
注意してください。
日本語 Windows 系で使用する CCSID は 819 です。
ユニコードは UTF-8 の CCSID は 1208,
UTF-16 の CCSID は 1200 です。
CCSID : 1399 はユニコードではありません。
5026, 5035 および 1399 は IFS では使用しません。
WRKLNK コマンドの使用と注意点
IFS の一覧や内容を5250エミュレータ環境で調べるには
WRKLNK コマンドを使います。
WRKLNK はストリーム・ファイルの CCSID を判断して
内容を表示しますので正しく表示されていない場合は
ストリーム・ファイルの CCSID を調べてください。
また操作に不慣れなうちはストリーム・ファイルの内容は
絶対に WRKLNK によって変更しないでください。
ディレクトリーに特殊な名前を指定すると
WRKLNK や RMVLNK を使っても削除できなくなる場合があるので
注意してください。