Q5:システム固有のディレクトリ構成にてプログラムファイルやINIファイル、ログファイルの格納、出力先を設定、管理したい。
Q5-1:
開発するシステムで使用するプログラムファイルやINIファイル、ログファイル等の配置先ディレクトリをカレントディレクトリからの相対パスとして指定して運用するようにしたいのですが、MZ側でどのような設定が必要でしょうか?
A5-1: まず、「カレントディレクトリ」についてですが、以下の場合があるかと存じます。
(1) MZ Platform実行ディレクトリ
起動したアプリケーションビルダーあるいはローダーが存在するディレクトリです。システム情報コンポーネントの「実行ディレクトリを取得する()」メソッドにより、絶対パスを表す文字列が得られます。
(2) 起動するアプリケーションファイルが存在するディレクトリ
システム情報コンポーネントの「実行中のアプリケーションファイルを取得する()」メソッドによりアプリケーションファイルを表すFileオブジェクトが得られます。これをファイルコンポーネントに設定し、ファイルコンポーネントの「このファイルが属しているディレクトリ名を取得する()」メソッドによりディレクトリの絶対パスを表す文字列が得られます。
(3) ユーザのホームディレクトリ
システム情報コンポーネントの「システムプロパティを取得する(String)」メソッドを、引数を「user.home」として実行することで、絶対パスを表す文字列が得られます。
これら3つのディレクトリの絶対パス表現文字列を取得するサンプルを掲載致しましたので、どうぞご覧ください。
次に、文字列格納変数コンポーネントの「指定した文字列と連結して置き換える(String)」メソッドを使い、カレントディレクトリの絶対パス表現文字列に、指定した相対パス名を付け加えることで、指定ファイルの絶対パス表現文字列を作成します。
あとは、その絶対パスに基づいてファイルへの入出力等を行うことになります。
関連ファイル:directory.mzax (※このファイルは、ZIP形式に圧縮してあります。)