Directory (クラス)
public abstract shared Directory {inherits {Association-of String, any}}
パッケージ: CURL.IO.FILE
直接継承しているサブクラス: StringDirectory, ObjectDirectory, NormalDirectory, ForwardingDirectory

このクラスはリソース オブジェクトのコレクションを表します。これらは通常 File オブジェクトおよび他の Directory オブジェクトです。Directory のサブクラスは特定のタイプのオブジェクトのコレクションを表します。たとえば、HttpDirectory は web サーバー上のファイルおよびディレクトリのコレクションを表します。通常これらのサブクラスに直接アクセスする代わりに、返されるオブジェクトのプロシージャおよびメソッドを Directory オブジェクトとして処理します。

説明

Directory クラスはパス名を解析する唯一のメカニズムを備えています。標準のパス名解析ルールは NormalDirectory により実装されます。

Directory絶対パス名を解釈します。ほとんどの Directory ではスキーム:パスの形式による名前を絶対として認識しますが、特定の Directory ではこの動作のオーバーライドを選択する場合があります (StringDirectory などを参照してください)。

ルート Directory ( get-root-directory を呼び出して取得します) に定義されているいくつかの名前を次に示します。
file://
ローカルファイルを指定。 (例: file:///c:/foo/bar.curl)
http:
URLを指定。 (例: "http://www.curl.com/curl")
curl:
Curl の名前空間を指定。

コンストラクタ
default:新規の Directory オブジェクトを作成して返します。Directory は抽象クラスなので、この目的で選択される既定の実装は ObjectDirectory になります。インターフェイスの詳細については ObjectDirectory.default を参照してください。
ファクトリ public {Directory.default key:String}:Directory

プロパティ
name:self の名前。
アクセサ public abstract Directory.name:String
parent-dir:self を含む Directory
アクセサ public abstract Directory.parent-dir:#Directory
size:コレクションの要素数を返します。
アクセサ public Directory.size:int
url:グローバル リソースの名前空間にあるこの Directory のパス名を Url として返します。
アクセサ public abstract Directory.url:Url
url-separator:Url のパス名コンポーネントを区切るセパレータを返します。
アクセサ public Directory.url-separator:char
プロパティ 継承 Association-of: efficient-size, empty?, key-type
プロパティ 継承 Aggregate-of: element-type

クラス プロシージャ
url-separator-fn:Url のパス名コンポーネントを区切る文字を返します。
public {Directory.url-separator-fn}:char
url-valid-separator?-fn:c が解析における有効なセパレータである場合は true を返します。文字列が Url に変換されると、すべての有効なセパレータ (この定義に基づく) は内部表現で self.url-separator (Directory.url-separator を参照) に置換されます。
public {Directory.url-valid-separator?-fn c:char}:bool

メソッド
concat:self.urltail に連結して、新しい Url を作成します。

戻り値のクエリおよびアンカーは tail から解析されます。
public {Directory.concat tail:String}:Url
get:名前が key に一致する self のオブジェクトを取得します。

詳細については Association-of.get を参照してください。
public final {Directory.get key:String}:any
get-if-exists:名前が key に一致する self のオブジェクトが見つかればそれを取得します。さらに、指定した名前を持つオブジェクトであるかどうかを示すブール値も返します。

詳細については Association-of.get-if-exists を参照してください。
public final {Directory.get-if-exists
key:String
}:(value:any, found?:bool)
key-exists?:Association-of.key-exists? を参照してください。
public {Directory.key-exists? key:String}:bool
remove:Association-of.remove を参照してください。
public {Directory.remove
key:String,
length:int = 1,
error-if-missing?:bool = true
}:void
set:Association-of.set を参照してください。
public sealed {Directory.set key:String, element:any}:void
special-entry?:copydelete などの複合操作を実行するときに繰り返して処理しないエントリを entry が参照している場合は、true を返します。
public {Directory.special-entry? entry:String}:bool
url-valid-separator?:c が解析における有効なセパレータである場合は true を返します。文字列が Url に変換されると、すべての有効なセパレータ (この定義に基づく) は内部表現で self.url-separator (Directory.url-separator を参照) に置換されます。
public {Directory.url-valid-separator? c:char}:bool
メソッド 継承 Association-of: clear, clone, filter, filter-clone, filter-keys, filter-keys-clone, get-key, get-key-if-exists, keys-to-Iterator
メソッド 継承 Aggregate-of: to-Iterator
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public {Directory.default key:String}:Directory

新規の Directory オブジェクトを作成して返します。Directory は抽象クラスなので、この目的で選択される既定の実装は ObjectDirectory になります。インターフェイスの詳細については ObjectDirectory.default を参照してください。




プロパティ詳細
name (アクセサ)
アクセサ public abstract Directory.name:String

self の名前。

説明

self が Curl のディレクトリ階層にリンクされている場合、このメソッドはグローバル リソースの名前空間にある self の名前を返します。この場合、
{{url self.name}.resolve}
および
{{abs-url self.name}.resolve}
で生成される値は self に等しく (==) なります。

self がディレクトリ階層にリンクされていない場合、このアクセッサは self が後で Directory のいずれかにインストールされる予定があれば self のキーとして使用される単純な名前を返します。


parent-dir (アクセサ)
アクセサ public abstract Directory.parent-dir:#Directory

self を含む Directory

説明

selfDirectory 階層にインストールされていない場合は null になります。


size (アクセサ)
アクセサ public Directory.size:int

コレクションの要素数を返します。

戻り値

self の要素数を示すint


{value
    || Declare and initialize a hash table with
    || String keys and int elements.
    let price:{HashTable-of String, int} =
        {new {HashTable-of String, int},
             "apple", 56,
             "banana", 87,
             "cherry", 34
        }

    || Display a message indicating the size of
    || the hash table.
    {text There are {value price.size} elements in
        the hash table.}
}

注意事項

これは Association-of の抽象メソッドで、Association-of のサブクラス内で実装されます。


url (アクセサ)
アクセサ public abstract Directory.url:Url

グローバル リソースの名前空間にあるこの Directory のパス名を Url として返します。



url-separator (アクセサ)
アクセサ public Directory.url-separator:char

Url のパス名コンポーネントを区切るセパレータを返します。





クラス プロシージャ詳細
url-separator-fn (クラスプロシージャ)
public {Directory.url-separator-fn}:char

Url のパス名コンポーネントを区切る文字を返します。



url-valid-separator?-fn (クラスプロシージャ)
public {Directory.url-valid-separator?-fn c:char}:bool

c が解析における有効なセパレータである場合は true を返します。文字列が Url に変換されると、すべての有効なセパレータ (この定義に基づく) は内部表現で self.url-separator (Directory.url-separator を参照) に置換されます。




メソッド詳細
concat (メソッド)
public {Directory.concat tail:String}:Url

self.urltail に連結して、新しい Url を作成します。

戻り値のクエリおよびアンカーは tail から解析されます。



get (メソッド)
public final {Directory.get key:String}:any

名前が key に一致する self のオブジェクトを取得します。

詳細については Association-of.get を参照してください。

説明

key にはセパレータ文字を含めないでください (Directory.url-separator を参照してください)。

self key を検索し、何かを見つけるとそれを返します。

注意事項

key が見つからない場合は MissingFileException をスローします。


get-if-exists (メソッド)
public final {Directory.get-if-exists
key:String
}:(value:any, found?:bool)

名前が key に一致する self のオブジェクトが見つかればそれを取得します。さらに、指定した名前を持つオブジェクトであるかどうかを示すブール値も返します。

詳細については Association-of.get-if-exists を参照してください。

説明

key にはセパレータ文字を含めないでください (Directory.url-separator を参照してください)。

self key を検索し、何かを見つけるとそれを返します。


key-exists? (メソッド)
public {Directory.key-exists? key:String}:bool

Association-of.key-exists? を参照してください。

説明

key にセパレータ文字を含めないでください (Directory.url-separator を参照してください)。

self key を検索して self key というエントリが含まれている場合は true を返します。


remove (メソッド)
public {Directory.remove
key:String,
length:int = 1,
error-if-missing?:bool = true
}:void

Association-of.remove を参照してください。

説明

key にセパレータ文字を含めないでください (Directory.url-separator を参照してください)。

lengthSequence-of.remove との互換性のためだけに用意されています。Directory に適用しても意味がないので、このメソッドは実行時に length が指定されていないことを強制します。

key が symlink を参照する場合、その symlink 自体は削除されます。remove の実行中に symlink をスナップすることはできません。


set (メソッド)
public sealed {Directory.set key:String, element:any}:void

Association-of.set を参照してください。

説明

key にセパレータの文字を含めないでください (Directory.url-separator を参照してください)。

注意事項

key という名前のオブジェトがすでに存在する場合は ExistingFileException をスローします。


special-entry? (メソッド)
public {Directory.special-entry? entry:String}:bool

copydelete などの複合操作を実行するときに繰り返して処理しないエントリを entry が参照している場合は、true を返します。

entry: テストされるパス名。

説明

このメソッドの既定の実装は、self.self-name および self.self-parent-dir-name に等しいかどうかを調べるだけです。


url-valid-separator? (メソッド)
public {Directory.url-valid-separator? c:char}:bool

c が解析における有効なセパレータである場合は true を返します。文字列が Url に変換されると、すべての有効なセパレータ (この定義に基づく) は内部表現で self.url-separator (Directory.url-separator を参照) に置換されます。