メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Get 4D folder

Get 4D folder {( folder {; options} {; *})} -> 戻り値

引数説明
folderIntegerフォルダータイプ (省略時 = Active 4D folder)
optionsObject4D Client database folder path configuration
*演算子ホストデータベースのフォルダーを返す
戻り値Text指定したフォルダーのパス名

説明

Get 4D folderコマンドは、カレントアプリケーションのアクティブな4Dフォルダー、またはfolder 引数とoptions 引数で指定された4D環境フォルダーへのパス名を返します。このコマンドを使用して、4Dアプリケーションで使用されるフォルダーの実際のパス名を取得できます。このコマンドを使用すれば、記述したコードがローカライズされたどのシステムのプラットフォームでも動作することが保障されます。

folder には4D Environmentテーマの次のいずれかの定数を渡します(それぞれのフォルダの詳細な情報はこのページの下部にあります):

定数
4D Client database folder倍長整数3
Active 4D Folder倍長整数0
Current resources folder倍長整数6
Data folder倍長整数9
Database folder倍長整数4
Database folder Unix syntax倍長整数5
HTML Root folder倍長整数8
Licenses folder倍長整数1
Logs folder倍長整数7
MobileApps folder倍長整数10

options 引数を使用すると、ローカルのリソースフォルダーパスをカスタマイズすることができます。これは4D Client database folder 定数を使用する場合にのみ考慮されます(以下参照)。

注意: Get 4D folder コマンドがリモート4D から呼び出された場合、返されるパスはリモートマシンのパスであり、4D Server のパスではありません。

Active 4D Folder

4D環境は、以下の情報を保存するために特定のフォルダーを使用します:

  • 4D環境アプリケーションが使用する環境設定ファイル
  • Shortcuts.xml ファイル (カスタマイズされたキーボードショートカット)
  • Macros v2 フォルダー (メソッドエディターで使用するマクロコマンド)
  • Favorites v1xフォルダー、例えば Favorites v13フォルダーなど(開いたローカルおよびリモートデータベースのパス名)
  • Logs フォルダー、データが読み込みのみモードの場合のメンテナンスログ置き場

アクティブな4Dフォルダーは、デフォルトでは以下の場所に作成されます:

  • Windows: {Disk}:\Users\ \AppData\Roaming\
  • macOS: {Disk}:Users: :Library:Application Support:
Licenses Folder

マシンのライセンスファイルを含むフォルダーです。

注意: 4D Volume Desktopとマージされたアプリケーションの場合、Licensesフォルダーはアプリケーションのパッケージに含まれます。

Data Folder

カレントのデータファイルを含んでいるフォルダへのパスです。パス名はカレントのプラットフォームでの標準のシンタックスを使用して表現されます。

4D Client Database Folder(クライアントマシン)

データベースに関連したファイルやフォルダ(リソース、プラグイン、Resources フォルダ等)を保存するために4D リモートのマシンに自動的に作成された4D フォルダのパスです。コマンドは以下のどちらかを返します:

  • リモートマシン上で呼び出され、options 引数が省略された場合には、カレントアプリケーションにおけるパスを返します。
  • options 引数が使用された場合には任意のアプリケーションのパスを返します(この場合、Get 4D folder はどのマシンからも呼び出されてもかまいません)。

デフォルトでは、パスは以下のような形になります:

  • Windows 上: {**Disk}:\Users\{UserAccount}\AppData\Local\{ApplicationName}\{StructureName_IP_Port_key}*例: C:\Users\John Doe\AppData\Local\myApp\myApp_192_168_2_134_19813_157
  • macOS 上: {Disk}:Users:{UserAccount}:Library:Caches:{ApplicationName} Client:{StructureName_IP_Port_key}.
    例: :Users:John Doe:Library:Caches:myApp Client:myApp_192_168_2_134_19813_933

同じマシン上でクライアントアプリケーションのインスタンスが同時に複数起動していた場合には、異なるフォルダが使用されます。

注意: Windows上の組み込みクライアントアプリでは、ShareLocalResourcesOnWindowsClient BuildApp キーが使用されていた場合にはこのフォルダの位置は変更されています。

4D Client Database Folder とoptions 引数を使用する

任意の4D データベースローカルフォルダパスを計算したい場合には、options 引数を使用することができます。この場合には、この返されるパスはオブジェクトで提供した情報に基づいてビルドされ、またコマンドは4D、4D Server、あるいはリモートアプリケーションのいずれからも使用することができます。この機能によって、リソースフォルダのパスを事前に計算することができ、それによって例えばコンテンツを事前にロードしておくことなどができます。

options オブジェクトには、以下のプロパティを渡すことができます:

プロパティ詳細
remoteAppPathテキスト任意 - リモートアプリケーションの実行ファイルのシステムパス。デフォルトはカレントアプリケーションの実行ファイルのパス
buildApplicationNameテキスト任意 - アプリケーションの名前(BuildApplicationName BuildApp xml キー値と同じ)。デフォルトはカレントアプリケーション名
structureNameテキストclientServerSystemFolderName 属性が定義されている場合を除き必須 - ストラクチャー名
ipAddressテキストclientServerSystemFolderName 属性が定義されている場合を除き必須 - サーバーのIP アドレス(IPAddress BuildApp xml キー値と同じ)
portNumber数値clientServerSystemFolderName 属性が定義されている場合を除き必須 - サーバーの公開ポート番号(PortNumber BuildApp xml キー値と同じ)
clientServerSystemFolderNameテキスト任意 - ローカルリソース最終フォルダのカスタム名(ClientServerSystemFolderName BuildApp xml キー値と同じ)
shareLocalResourcesOnWindowsClientブール任意 - 共有ローカルリソースフォルダ(ShareLocalResourcesOnWindowsClient BuildApp xml キー値と同じ)

注意: 返されるパスは、コマンドを実行しているマシンのシステムシンタックスを使用して表現されます。

Database Folder

データベースストラクチャファイルを含むフォルダーです。 パス名は、現在のプラットホームの標準のシンタックスを使用して表現されます。
4Dクライアントアプリケーションの場合、この定数は前述の4D Client Database Folder定数とまったく同じです。 コマンドはローカルに作成されたフォルダーのパス名を返します。

Database Folder Unix Syntax

データベースストラクチャファイルを含むフォルダーです。 この定数は前述のフォルダーと同じものですが、パス名は/Users/...のようなUNIXシンタックス (POSIX) で表現されます。このシンタックスは主に、Mac OSで LAUNCH EXTERNAL PROCESS コマンドを使用する場合に使用されます。

Current Resources folder

データベースのリソースフォルダー。このフォルダーにはデータベースのインタフェースで使用される、ピクチャーやテキストなどの追加の項目が置かれます。コンポーネントはそれぞれ独自のResourcesフォルダーを持つことができます。

クライアント/サーバーモードでは、サーバーマシンとクライアントマシン間でピクチャーやファイル、サブフォルダーなどのカスタムデータを交換するために使用できます。このフォルダーのコンテンツはクライアントマシンが接続するたびに自動で更新されます。Resourcesフォルダーに関連付けられたすべての参照メカニズムは、クライアント/サーバーモードでもサポートされます (.lproj フォルダー、XLIFF、ピクチャーなど)。さらに4Dではリソースエクスプローラーなどさまざまなツールを通じ、このフォルダの管理と更新を動的に行えるようになっています。

注意:

  • データベースに対してフォルダが存在しない場合、Current resources folder 定数とGet 4D folder コマンドを使用することでこのフォルダが作成されます。
  • Windows 上では、組み込みクライアントプロジェクトにおいてはこのフォルダの位置は、ShareLocalResourcesOnWindowsClient BuildApp キーを使用していた場合、変更されます。
Logs folder

データベースのLogsフォルダーで、データファイルと同じ階層にあります。カレントデータベースの次のログがこのフォルダーに格納されます:

  • データベース変換
  • Webサーバリクエスト
  • バックアップ/復元処理のジャーナル
  • コマンドデバッグ
  • 4D Serverリクエスト (クライアントマシンとサーバー上で生成)

注:

  • system user preferences フォルダー (Active 4D Folder) にも追加の Logs フォルダーがあり、圧縮・検証・修復などのメンテナンスログファイルを保存します。これらのログファイルにアクセスするには、コマンド Get 4D file(Compacting log file) を使うことが推奨されます。通常の Logs フォルダーに書き込みできない場合にも、このLogs フォルダーが使用されます。
  • データベースにLogsフォルダーが存在しない場合、Get 4D folderコマンドにLogs folder定数を渡して実行すると、フォルダーが適切な場所に作成されます。
HTML Root Folder

データベースのカレントの HTML ルートフォルダ。返されるパス名は、プラットフォームの標準シンタックスで表現されます。HTMLルートフォルダーは、リクエストされたページやファイルを4D Webサーバが探すフォルダーです。デフォルトで、このフォルダーの名前はWebFolderで、ストラクチャーファイルと同階層 (またはリモートモードの4Dの場合、そのローカルコピー) に置かれます。この場所はデータベース設定のWeb/設定ページ、またはWEB SET ROOT FOLDER コマンドで動的に変更できます。

注: Windows上では、組み込みクライアントプロジェクトにおいてはこのフォルダの位置は、ShareLocalResourcesOnWindowsClient BuildApp キーを使用していた場合、変更されます。

MobileApps Folder

モバイルアプリユーザーセッション(4D for iOS アプリまたは4D for Android のためのセッション)を参照するために4D アプリケーションによって使用される、全ての既存のセッションファイル(.json ファイル)を格納しているフォルダ。セッションファイルはアプリケーションサブフォルダごとにグループ分けされており、自動的に作成されます。詳細な情報については、 go mobile ドキュメンテーション のドキュメントを参照してください。

フォルダはカレントの4D データファイルと同じ階層に位置しています。

任意の * 引数は、コンポーネントを使用しているアーキテクチャーの場合には有用です。これを使用することで、フォルダのパス名を取得したいデータベースがどちらか(ホストまたはコンポーネント)を指定することができます。この引数は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フォルダにある設定ファイルを読み込み (または作成) したいとします。これを行うために、On Startupデータベースメソッド, に以下のように記述できます:

 $vsPrefDocName:=Get 4D folder+"MyPrefs.prf" //Build pathname to the Preferences file
  // ファイルが存在するかチェック
 If(Test path name($vsPrefDocName)#Is a document)
    $vtPrefDocRef:=Create document($vsPrefDocName.prf) // 存在しなければ作成
 Else
    $vtPrefDocRef:=Open document($vsPrefDocName.prf) // 存在すれば開く
 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)を使用することもできます。

システム変数およびセット

folder 引数が無効または返されたパス名が空の場合、OKシステム変数は0に設定されます。

参照

COMPONENT LIST
System folder
Temporary folder
Test path name
WEB SET ROOT FOLDER