version 11.2 (Modified)
Get 4D folder ({folder}{; }{*}) 文字列
| 引数 | 型 | 説明 | |
| folder | 倍長整数 | フォルダタイプ (省略時 = Active 4D folder) | |
| * | * | ホストデータベースのフォルダを返す | |
| 戻り値 | 文字列 | 指定したフォルダのパス名 |
説明
Get 4D folder コマンドは、カレントアプリケーションのアクティブな4Dフォルダ、またはfolder引数で指定された4D環境フォルダへのパス名を返します。このコマンドを使用して、4Dアプリケーションで使用されるフォルダの実際のパス名を取得できます。このコマンドを使用すれば、記述したコードがローカライズされたどのシステムのプラットフォームでも動作することが保障されます。
folderには、“4D Environment”テーマ内にある、次のいずれかの定数を渡します:
| 定数 | 型 | 値 |
| Active 4D Folder | 倍長整数 | 0 (デフォルト) |
| Licenses Folder | 倍長整数 | 1 |
| Extras Folder | 倍長整数 | 2 |
| 4D Client Database Folder | 倍長整数 | 3 |
| Database Folder | 倍長整数 | 4 |
| Database Folder Unix Syntax | 倍長整数 | 5 |
| Current Resources folder | 倍長整数 | 6 |
| Logs Folder | 倍長整数 | 7 |
| HTML Root Folder | 倍長整数 | 8 |
各フォルダについて以下で説明します:
フォルダ名に関する予備的な説明:
・{Disk} はシステムがインストールされたディスクを示します。
・Userという単語は、セッションを開いたユーザの名前を示します。
Active 4D Folder
4D環境は以下の情報を保存するために4Dフォルダを使用します:
・4D環境アプリケーション、ツール、およびユティリティプログラムが使用する環境設定ファイル
・Shortcuts.xml ファイル (カスタマイズされたキーボードショートカット)
・Macros v2 フォルダ (メソッドエディタで使用するマクロコマンド)
Favorites v11 フォルダ (開いたローカルおよびリモートデータベースのパス名)
デフォルトで4Dフォルダは以下の場所に作成されます:
・Windows Vista: {Disk}:\Users\Current user\AppData\Roaming\4D
・Windows XP: {Disk}:\Documents and Settings\Current user\Application Data\4D
・Mac OS: {Disk}:Users:Current user:Library:Preferences:4D
Licenses Folder
マシンのライセンスファイルを含むフォルダです。
Licensesフォルダは以下の場所に作成されます:
・Windows Vista: {Disk}:\ProgramData\4D\Licenses
・Windows XP: {Disk}:\Documents and Settings\All Users\Application Data\4D\Licenses
・Mac OS: {Disk}:Library:Application Support:4D:Licenses
Notes:
4D Volume Desktopとマージされたアプリケーションの場合、Licensesフォルダはアプリケーションのパッケージに含まれます。
権限が足りないため、Licensesフォルダがシステムに作成できない場合、フォルダは以下の場所に作成されます:
- Windows Vista : {Disk}:\Users\Current user\AppData\Roaming\4D\Licenses
- Windows XP : {Disk}:\Documents and Settings\Current user\Application Data\4D\Licenses
- Mac OS : {Disk}:Users:Current user:Library:Application Support:4D:Licenses
Extras Folder (廃止)
クライアントマシン毎にダウンロードされる、カスタマイズされたコンテンツを格納するフォルダ。
互換性に関する注意: 4D v11 SQLのバージョン11.2より、サーバとリモートマシン間でカスタマイズされたファイルの交換を行うためのExtrasフォルダの利用は推奨されなくなりました。この目的ではResourcesフォルダの利用を推奨します (以下の Current Resources Folderの説明参照)。Extras フォルダは既存のアプリケーションの互換性を保つために、4D Serverによりサポートされます。
Note: データベースにExtrasフォルダが存在しない場合、Get 4D folder コマンドにExtras Folder定数を渡して実行すると、フォルダが作成されます。
4D Client Database Folder (クライアントマシン)
各4Dクライアントマシンに作成された4Dデータベースフォルダ。リーソス、プラグイン、Resourcesフォルダ等データベースに関連したファイルやフォルダを格納するためのフォルダです。
4D Client Database Folderはそれぞれのクライアントマシン上の以下の場所に置かれます:
・Windows Vista: {Disk}:\Users\Current user\AppData\Local\4D\DatabaseName_Address
・Windows XP: {Disk}:\Documents and Settings\Current user\Local Settings\Application Data\DatabaseName_Address
・Mac OS: {Disk}:Users:User:Library:Caches:4D:DatabaseName_Address:
Database Folder
データベースストラクチャファイルを含むフォルダです。 パス名は、現在のプラットホームの標準のシンタックスを使用して表現されます。
4Dクライアントアプリケーションの場合、この定数は前述の4D Client Database Folder定数とまったく同じです。 コマンドはローカルに作成されたフォルダのパス名を返します。
Database Folder Unix Syntax
データベースストラクチャファイルを含むフォルダです。 この定数は前述のフォルダと同じものですが、パス名は/Users/...のようなUNIXシンタックス (POSIX) で表現されます。このシンタックスは主に、Mac OSでLAUNCH EXTERNAL PROCESSコマンドを使用する、またはSET CGI EXECUTABLEコマンドを使用する場合に、使用されます。
Current Resources folder
データベースのリソースフォルダ。このフォルダにはデータベースのインタフェースで使用される、ピクチャやテキストなどの追加の項目が置かれます。コンポーネントはそれぞれ独自のResourcesフォルダを持ちます。Resourcesフォルダはデータベースストラクチャと同階層に置かれます。
クライアント/サーバモードでは、サーバマシンとクライアントマシン間でピクチャやファイル、サブフォルダなどのカスタムデータを交換するために使用できます。このフォルダのコンテンツはクライアントマシンが接続するたびに自動で更新されます。Resourcesフォルダに関連付けられたすべての参照メカニズムは、クライアント/サーバモードでもサポートされます (.lproj フォルダ、XLIFF、ピクチャなど)。さらに4D v11 SQLはリソースエクスプローラなどさまざまなツールを通じ、このフォルダの管理と更新を動的に行えるようになっています。
Note: データベースにResourcesフォルダが存在しない場合、Get 4D folder コマンドにCurrent Resources folder定数を渡して実行すると、フォルダが作成されます。
Logs Folder
データベースのLogsフォルダ。このフォルダにはカレントデータベースのログが格納されます。フォルダはストラクチャファイルと同階層に作成され、以下のログが格納されます:
・データベース変換
・Webサーバリクエスト
・データ検証と修復
・ストラクチャ検証と修復
・バックアップ/復元処理のジャーナル
・コマンドデバッグ
・4D Serverリクエスト (クライアントマシンとサーバ上で生成)
Note: データベースにLogsフォルダが存在しない場合、Get 4D folder コマンドにLogs Folder定数を渡して実行すると、フォルダが作成されます。
HTML Root Folder
データベースのカレントHTMLルートフォルダ。返されるパス名は、プラットフォームの標準シンタックスで表現されます。HTMLルートフォルダは、リクエストされたページやファイルを4D Webサーバが探すフォルダです。デフォルトで、このフォルダの名前はWebFolderで、ストラクチャファイルと同階層 (またはリモートモードの4Dの場合、そのローカルコピー) に置かれます。この場所は環境設定のWeb/設定ページ、またはSET HTML ROOT コマンドで動的に、変更できます。
Get 4D folder コマンドがリモートの4Dが呼ばれた場合、返されるパスはリモートマシンのものです。4D Serverのものではありません。
オプションの * 引数は、コンポーネントを使用するアーキテクチャにおいて有用です。ホストデータベースとコンポーネント、どちらのフォルダのパス名を取得するか指定するために使用します。この引数はDatabase Folder、Database Folder、Unix Syntax、Current Resources folderのみで使用できます。他の場合、この引数は無視されます。
このコマンドがコンポーネントから呼び出されると:
・* 引数が渡されていれば、コマンドはホストデータベースのフォルダパス名を返します。
・* 引数が渡されていなければ、コマンドはコンポーネントのフォルダパス名を返します。
返されるデータベースフォルダ (Database FolderとDatabase Folder Unix Syntax) はコンポーネントのアーキテクチャにより異なります:
- .4dbase フォルダ/パッケージの場合、コマンドは.4dbase フォルダ/パッケージのパス名を返します。
- .4dbまたは.4dcファイルの場合、コマンドは“Components”フォルダのパス名を返します。
- エイリアスやショートカットの場合、コマンドはオリジナルのマトリクスデータベースが格納されているフォルダのパス名を返します。結果は、先に説明したとおり、このデータベースのフォーマット (.4dbase フォルダ/パッケージ、または.4db/.4dcファイル) により異なります。
コマンドがホストデータベースから呼ばれた場合、* 引数が渡されているかどうかにかかわらず、コマンドは常にホストデータベースのフォルダのパス名を返します。
例題
1. シングルユーザの4Dで、起動時に、4D Folderにある設定ファイルを読み込み (または作成) したいとします。これを行うために、On Startup データベースメソッドに以下のように記述できます:
MAP FILE TYPES("PREF";"PRF";"Preferences file")
` PREF Mac OSファイルタイプと.PRF Windowsファイル拡張子をマップ
$vsPrefDocName:=Get 4D folder+"MyPrefs" ` Build pathname to the Preferences file
` ファイルが存在するかチェック
If (Test path name($vsPrefDocName+(".PRF"*Num(On Windows)))#Is a document)
$vtPrefDocRef:=Create document($vsPrefDocName;"PREF") ` なければ作成
Else
$vtPrefDocRef:=Open document($vsPrefDocName;"PREF") ` あれば開く
End if
If (OK=1)
` ドキュメントの中身を処理
CLOSE DOCUMENT($vtPrefDocRef)
Else
` エラー処理
End if
2. 以下の例は、Mac OS上でDatabase Folder Unix Syntax定数を使用し、データベースフォルダの内容を取り出します:
$posixpath:="\""+Get 4D folder(Database Folder Unix Syntax)+"\"" $myfolder:="ls -l "+$posixpath $in:="" $out:="" $err:="" LAUNCH EXTERNAL PROCESS($myfolder;$in;$out;$err)
Note: Mac OSでは、スペースがファイルやフォルダ名に含まれる場合、パス名をクォートで括らなければなりません。文字列にクォートを挿入するために、エスケープ文字"\"を使用できます。あるいはChar(Double quote)を使用することもできます。
参照
COMPONENT LIST, SET HTML ROOT, System folder, Temporary folder, Test path name.
システム変数またはセット
folder 引数が無効または返されたパス名が空の場合、OKシステム変数に0が設定されます。