Directory テーブル
Directory テーブルでは、製品のディレクトリのレイアウトを指定します。 このテーブルの各行は、ソースとターゲットの両方のディレクトリを示します。
Directory テーブルには次の列があります。
Column | 種類 | キー | Nullable |
---|---|---|---|
ディレクトリ | Identifier | Y | N |
Directory_Parent | Identifier | N | Y |
DefaultDir | DefaultDir | N | N |
[列]
-
Directory
-
Directory 列には、ディレクトリまたはディレクトリ パス用の一意の識別子が含まれています。 この列には、ターゲット ディレクトリの完全なパスに設定されているプロパティの名前を含めることができます。 この列にプロパティが含まれている場合、ターゲット ディレクトリは、DefaultDir 列で指定された名前を取り、Directory_Parent 列で指定された親ディレクトリを取ります。
ソース ディレクトリは常に DefaultDir 列で指定された名前を取り、Directory_Parent 列で指定された親ディレクトリを取ります。
Directory_Parent 列が null であるか、または Directory 列の値と等しい場合は、Directory 列によってルート ターゲット ディレクトリが表されます。 Directory テーブルに指定できるルート ディレクトリは 1 つだけです。
-
Directory_Parent
-
この列は、ディレクトリの親ディレクトリへの参照です。 null であるか、または Directory 列と等しい Directory_Parent 列を含むレコードによって表されるのは、ルート ディレクトリです。 親ディレクトリの完全なパスは、Directory 列への外部キーである Directory_Parent 列内の参照によって解決されます。 たとえば、フォルダーに PDIR という名前の親ディレクトリがある場合、PDIR の親ディレクトリは、Directory 列に PDIR が含まれている行の Directory_Parent 列に指定されています。
-
DefaultDir
-
DefaultDir 列には、親ディレクトリの下にあるディレクトリの名前 (ローカライズ可能) が含まれます。 既定では、これはターゲット ディレクトリとソース ディレクトリの両方の名前です。 ソースおよびターゲットのディレクトリにそれぞれ異なる名前を指定するには、次のようにターゲットとソースの名前をコロンで区切ります: [targetname]:[sourcename]。
Directory_Parent 列の値が null または Directory 列と等しい場合、DefaultDir 列はルート ソース ディレクトリの名前を指定します。
非ルート ソース ディレクトリの場合、ソース ディレクトリ名またはターゲット ディレクトリ名用の DefaultDir 列に入力されたピリオド (.) は、ディレクトリがその親ディレクトリ内でサブディレクトリなしで配置される必要があることを示しています。
この列内のディレクトリ名は、短いファイル名と長いファイル名のペアとしてフォーマットされる場合があります。
解説
テーブル内の各レコードは、ソース イメージと宛先イメージの両方にあるディレクトリを表しています。 Directory テーブルでは、Directory 列の値が TARGETDIR プロパティと同じである単一のルート ディレクトリを指定する必要があります。
管理インストールの場合は、TARGETDIR という名前のルート ディレクトリに管理イメージをインストールし、ソース ディレクトリ名を使用してターゲット ディレクトリを解決します。
インストーラーによって、システム フォルダー パスに多数の標準プロパティが設定されることに注意してください。 システム フォルダーに設定されているプロパティの一覧については、「プロパティ リファレンス」を参照してください。
ディレクトリの解決は CostFinalize アクション中に実行され、次のように行われます。
ルート宛先ディレクトリ
ルート宛先ディレクトリが 1 つだけ存在する場合があります。 ルート宛先ディレクトリを指定するには、Directory 列を TARGETDIR プロパティに設定し、DefaultDir 列を SourceDir プロパティに設定します。 TARGETDIR プロパティが定義されている場合、宛先ディレクトリはプロパティの値に解決されます。 TARGETDIR プロパティが未定義の場合は、ROOTDRIVE プロパティを使用してパスを解決します。
ルート ソース ディレクトリ
ルート ディレクトリ エントリ用の DefaultDir 列の値を SourceDir プロパティに設定する必要があります。
非ルート宛先ディレクトリ
非ルート ディレクトリに関する Directory 値は、宛先の場所を定義するプロパティの名前としても解釈されます。 プロパティが定義されている場合、宛先ディレクトリはそのプロパティの値に解決されます。 プロパティが定義されていない場合は、宛先ディレクトリは、Directory_Parent エントリに対して解決された宛先ディレクトリの下にあるサブディレクトリに解決されます。 サブディレクトリの名前は、DefaultDir 値によって定義されます。
非ルート ソース ディレクトリ
非ルート ディレクトリ用のソース ディレクトリは、Directory_Parent エントリに対して解決されたソース ディレクトリのサブディレクトリに解決されます。 ここでも、サブディレクトリの名前は DefaultDir 値によって定義されます。
短いまたは長いファイル名
宛先ディレクトリを解決する際、SHORTFILENAMES プロパティが設定されている場合、またはディレクトリが配置されているボリュームで長いファイル名がサポートされていない場合は、DefaultDir 列に指定された短いファイル名が使用されます。 それ以外の場合は、長いファイル名が使用されます。
CostFinalize アクション中にディレクトリが解決されると、ディレクトリ テーブル内のキーはディレクトリ パスに設定されたプロパティになるので注意してください。
インストール中に空のフォルダーを作成する方法については、「CreateFolder テーブル」を参照してください。
サンプルを含む Directory テーブルの詳細については、「ディレクトリ テーブルの使用」を参照してください。
検証