| 4D v15 R3Get 4D folder | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v15 R3
 Get 4D folder 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Get 4D folder {( folder {; *} )} -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| folder | 倍長整数 |   | フォルダタイプ (省略時 = Active 4D folder) | |||||
| * | 演算子 |   | ホストデータベースのフォルダを返す | |||||
| 戻り値 | 文字 |   | 指定したフォルダのパス名 | |||||
Get 4D folderコマンドは、カレントアプリケーションのアクティブな4Dフォルダー、またはfolder引数で指定された4D環境フォルダーへのパス名を返します。このコマンドを使用して、4Dアプリケーションで使用されるフォルダーの実際のパス名を取得できます。このコマンドを使用すれば、記述したコードがローカライズされたどのシステムのプラットフォームでも動作することが保障されます。
folderには4D Environmentテーマの次のいずれかの定数を渡します:
| 定数 | 型 | 値 | 
| 4D Client database folder | 倍長整数 | 3 | 
| Active 4D Folder | 倍長整数 | 0 | 
| Current resources folder | 倍長整数 | 6 | 
| Database folder | 倍長整数 | 4 | 
| Database folder Unix syntax | 倍長整数 | 5 | 
| Extras folder | 倍長整数 | 2 | 
| HTML Root folder | 倍長整数 | 8 | 
| Licenses folder | 倍長整数 | 1 | 
| Logs folder | 倍長整数 | 7 | 
各フォルダーについて以下で説明します:
フォルダー名に関する予備的な説明: 
 
4D環境は、以下の情報を保存するために特定のフォルダを使用します:
主な4Dアプリケーション(4D と 4D Server)では、アクティブな4Dフォルダは 4D と名前がつけられ、デフォルトでは以下の場所に作成されます:
4D v13 以降、4D Volume Desktopでアプリケーションを組み込みした場合、アクティブ4Dフォルダは以下の場所にあります:
マシンのライセンスファイルを含むフォルダーです。
Licensesフォルダーは以下の場所に作成されます:
注:
クライアントマシン毎にダウンロードされる、カスタマイズされたコンテンツを格納するフォルダー。
互換性に関する注意: 4D v11 SQLのバージョン11.2より、サーバとリモートマシン間でカスタマイズされたファイルの交換を行うためのExtrasフォルダーの利用は推奨されなくなりました。この目的ではResourcesフォルダーの利用を推奨します (以下の Current Resources Folderの説明参照)。Extras フォルダーは既存のアプリケーションの互換性を保つために、4D Serverによりサポートされます。
注: データベースにExtrasフォルダーが存在しない場合、Get 4D folderコマンドにExtras Folder定数を渡して実行すると、フォルダーが作成されます。
各4Dクライアントマシンに作成された4Dデータベースフォルダ。リーソス、プラグイン、Resourcesフォルダー等データベースに関連したファイルやフォルダーを格納するためのフォルダです。
4D Client Database Folderはそれぞれのクライアントマシン上の以下の場所に置かれます:
データベースストラクチャファイルを含むフォルダーです。 パス名は、現在のプラットホームの標準のシンタックスを使用して表現されます。
4Dクライアントアプリケーションの場合、この定数は前述の4D Client Database Folder定数とまったく同じです。 コマンドはローカルに作成されたフォルダーのパス名を返します。
データベースストラクチャファイルを含むフォルダーです。 この定数は前述のフォルダーと同じものですが、パス名は/Users/...のようなUNIXシンタックス (POSIX) で表現されます。このシンタックスは主に、Mac OSで LAUNCH EXTERNAL PROCESS コマンドを使用する場合に使用されます。
データベースのリソースフォルダー。このフォルダーにはデータベースのインタフェースで使用される、ピクチャーやテキストなどの追加の項目が置かれます。コンポーネントはそれぞれ独自のResourcesフォルダーを持ちます。Resourcesフォルダーはデータベースストラクチャーと同階層に置かれます。
クライアント/サーバーモードでは、サーバーマシンとクライアントマシン間でピクチャーやファイル、サブフォルダーなどのカスタムデータを交換するために使用できます。このフォルダーのコンテンツはクライアントマシンが接続するたびに自動で更新されます。Resourcesフォルダーに関連付けられたすべての参照メカニズムは、クライアント/サーバーモードでもサポートされます (.lproj フォルダー、XLIFF、ピクチャーなど)。さらに4Dではリソースエクスプローラーなどさまざまなツールを通じ、このフォルダの管理と更新を動的に行えるようになっています。 
注: データベースにResourcesフォルダーが存在しない場合、Get 4D folderコマンドにCurrent Resources folder定数を渡して実行すると、フォルダーが作成されます。
データベースのLogsフォルダー。このフォルダーにはカレントデータベースのログが格納されます。フォルダーはストラクチャファイルと同階層に作成され、以下のログが格納されます:
注: データベースにLogsフォルダーが存在しない場合、Get 4D folderコマンドにLogs Folder定数を渡して実行すると、フォルダーが作成されます。
データベースのカレントHTMLルートフォルダー。返されるパス名は、プラットフォームの標準シンタックスで表現されます。HTMLルートフォルダーは、リクエストされたページやファイルを4D Webサーバが探すフォルダーです。デフォルトで、このフォルダーの名前はWebFolderで、ストラクチャーファイルと同階層 (またはリモートモードの4Dの場合、そのローカルコピー) に置かれます。この場所はデータベース設定のWeb/設定ページ、またはWEB SET ROOT FOLDERコマンドで動的に変更できます。
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ファイル) により異なります。
コマンドがホストデータベースから呼ばれた場合、* 引数が渡されているかどうかにかかわらず、コマンドは常にホストデータベースのフォルダーのパス名を返します。
シングルユーザの4Dで、起動時に、4Dフォルダにある設定ファイルを読み込み (または作成) したいとします。これを行うために、に以下のように記述できます:
 MAP FILE TYPES("PREF";"PRF";"Preferences file")
  ` PREF Mac OSファイルタイプと.PRF Windowsファイル拡張子をマップ
 $vsPrefDocName:=Get 4D folder+"MyPrefs" ` 環境設定ファイルへのパス名
  ` ファイルが存在するかチェック
 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以下の例は、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)を使用することもできます。
folder 引数が無効または返されたパス名が空の場合、OKシステム変数は0に設定されます。
									COMPONENT LIST
									
									System folder
									
									Temporary folder
									
									Test path name
									
									WEB SET ROOT FOLDER
									
	プロダクト: 4D
	テーマ: 4D環境
	番号: 
        485
        
        
        
	
	変更: 4D v11 SQL Release 2
	変更: 4D v13
Folder
	
	
	
	ランゲージリファレンス ( 4D v15 R3)
	
	ランゲージリファレンス ( 4D v15)
	
	
	ランゲージリファレンス ( 4D v15.4)
	
	ランゲージリファレンス ( 4D v15.3)
 コメントを追加
コメントを追加