構造体


FilePath


ファイルシステム内の位置を表します。


iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+ macOS 11.0+

tvOS 14.0+ visionOS 1.0+ watchOS 7.0+

struct FilePath





概観


この構造体は、ディレクトリ区切り文字 (/ など) やルートを認識し、コンテンツが NUL (0x0) で終了することを要求します。それ以外は、含まれるバイトに意味はありません。コンテンツがどのように解釈されるかは、ファイルシステムによって定義されます (たとえば、文字列コード化の選択によって)。


構築時に、FilePath は、冗長な中間区切り文字を削除し、末尾の区切り文字を削除することで区切り文字を正規化します。Windows では、FilePath は、プラットフォームの推奨に従って、スラッシュ / を逆スラッシュ\ に正規化します。


以下のコードは、文字列リテラルからファイルパスを作成し、それを使用してログファイルを開いて追加します。


  1. let message: String = "This is a log message."
  2. let path: FilePath = "/tmp/log"
  3. let fd = try FileDescriptor.open(path, .writeOnly, options: .append)
  4. try fd.closeAfter { try fd.writeAll(message.utf8) }

ファイルパスは、プロトコルの操作を生のバイトコンテンツに対して実行することで、Equatable プロトコルと Hashable プロトコルに準拠します。この準拠により、ファイルパスを例えば辞書内のキーなどとして使用できるようになります。ただし、パスの等価性のルールはファイルシステム固有であり、大文字と小文字の区別をせず、Unicode の正規化、シンボリックリンクなどの追加の考慮事項があります。





トピックス


ファイルパスの作成


init()

空の、null で終了するパスを作成します。


init(stringLiteral: String)

文字列リテラルからファイルパスを作成します。


init(extendedGraphemeClusterLiteral: Self.StringLiteralType)

与えられた値に初期化されたインスタンスを作成します。


init(unicodeScalarLiteral: Self.ExtendedGraphemeClusterLiteralType)

与えられた値に初期化されたインスタンスを作成します。



関連型


本来は ここには記載されていませんが、何処に帰属するか不明の、FilePath に関連したドキュメントがあるためここに記載します。


Associated Type StringLiteralType

文字列リテラルを表す型。


Associated Type ExtendedGraphemeClusterLiteralType

拡張書記素クラスターリテラルを表す型。


typealias SubSequence



ファイルパスの操作


var length: Int

ヌル終端文字を除いたファイルパスの長さ。


var description: String

ファイルパスのテキスト表現。


var debugDescription: String

デバッグに適した、ファイルパスのテキスト表現。



C の API の操作


func withCString<Result>((UnsafePointer<CChar>) throws -> Result) rethrows -> Result

下位互換性のためだけに用意。この関数は、推奨される withPlatformString と同等です。



ファイルパスの比較


static func == (FilePath, FilePath) -> Bool

2 つの値が等しいかどうかを示すブール値を返します。


static func != (Self, Self) -> Bool

2 つの値が等しくないかどうかを示すブール値を返します。


func hash(into: inout Hasher)

この値の不可欠のコンポーネントを与えられたハッシャーに入力してハッシュします。


var hashValue: Int

ハッシュ値です。



ファイルパスのコード化


init(from: any Decoder) throws

与えられた復号器から復号して新しいインスタンスを作成します。


func encode(to: any Encoder) throws

この値を与えられたエンコーダにコード化します。



構造体


struct Component

ファイルパスの個別の、ルートでないコンポーネントを表します。


struct ComponentView

ファイルパスを構成するルートでないコンポーネントの双方向の範囲置換可能なコレクション。


struct Root

ファイルパスのルートを表します。



イニシャライザ


init?(URL)

URL からファイルパスを作成します


init(String)

文字列からファイルパスを作成します。


init(cString: [CChar])   廃止  


init(cString: String)   廃止  


init(cString: UnsafePointer<CChar>)

下位互換性のためだけに。このイニシャライザは、推奨される FilePath(platformString:) と同等です。   廃止  


init(cString: inout CChar)   廃止  


init(platformString: inout CInterop.PlatformChar)   廃止  


init(platformString: UnsafePointer<CInterop.PlatformChar&ggt)

null で終了するプラットフォーム文字列からバイトをコピーしてファイルパスを作成します。


init(platformString: String)   廃止  


init(platformString: [CInterop.PlatformChar])

null で終了するプラットフォーム文字列からバイトをコピーしてファイルパスを作成します。


init<C>(root: FilePath.Root?, C)

ルートとコンポーネントのコレクションからファイルパスを作成します。


init(root: FilePath.Root?, FilePath.ComponentView.SubSequence)

optional のルートと別のパスのコンポーネントのスライスからファイルパスを作成します。


init(root: FilePath.Root?, components: FilePath.Component...)

ルートと任意の数のコンポーネントからファイルパスを作成します。



インスタンスプロパティ


var components: FilePath.ComponentView

このパスを構成するルート以外のコンポーネントを表示します。


var `extension`: String?

ファイルまたはディレクトリの最後のコンポーネントの拡張子。


var isAbsolute: Bool

このパスが追加の開始場所を参照せずにファイルの位置を一意に識別する場合は true を返します。


var isEmpty: Bool

このパスが空かどうか


var isLexicallyNormal: Bool

パスが語彙的に標準形式であるかどうか、つまり、. および .. コンポーネントが語彙的に折りたたまれているかどうか (つまり、シンボリックリンクをたどらないかどうか)。


var isRelative: Bool

このパスが絶対パスでない場合は true を返します (isAbsolute を参照のこと)。


var lastComponent: FilePath.Component?

パスの最後のコンポーネントを返します。パスが空の場合、またはルートのみが含まれている場合は nil を返します。


var root: FilePath.Root?

パスのルートがある場合はそれを返し、ない場合は nil を返します。


var stem: String?

ファイルまたはディレクトリの最後のコンポーネントの拡張子でない部分。


var string: String

パスの内容を Unix では UTF-8、Windows では UTF-16 として解釈して文字列を作成します。



インスタンスメソッド


func append<C>(C)

このパスの末尾にコンポーネントを付け足します。


func append(String)

先頭の不要な区切り文字を無視して、other の内容を付け足します。


func append(FilePath.Component)

このパスの末尾にコンポーネントを付け足します。


func appending(String) -> FilePath

append(_:String)mutaing でないバージョン。


func appending(FilePath.Component) -> FilePath

append(_:Component)mutaing でないバージョン。


func appending<C>(C) -> FilePath

append(_:C)mutating でないバージョン。


func ends(with: FilePath) -> Bool

パス全体のコンポーネントのみを考慮して、otherself の接尾辞であるかどうかを返します。


func lexicallyNormalize()

. および .. コンポーネントを語彙的に折りたたみます (つまり、シンボリックリンクをたどらずに)。


func lexicallyNormalized() -> FilePath

語彙の正規形式で self のコピーを返します。つまり、. および .. コンポーネントは語彙的に折りたたまれています (つまり、シンボリックリンクをたどらずに)。lexicallyNormalize を参照してください。


func lexicallyResolving(FilePath) -> FilePath?

結果が語彙的に self 内に含まれることを確認しながら、self に対するサブパスを解決して新しい FilePath を作成します。


func push(FilePath)

other にルートがない場合は、other の各コンポーネントを付け加えます。other にルートがある場合は、selfother に置き換えます。


func pushing(FilePath) -> FilePath

push()mutating でないバージョン。


func removeAll(keepingCapacity: Bool)

パスの内容を削除しますが、null の終端文字は保持します。


func removeLastComponent() -> Bool

removingLastComponent のふさわしい mutating バリアント。


func removePrefix(FilePath) -> Bool

prefix が self の接頭辞である場合はそれを削除して true を返します。それ以外の場合は false を返します。


func removingLastComponent() -> FilePath

lastComponent を含まないそれまでのすべてを含む新しいパスを作成します。


func removingRoot() -> FilePath

コンポーネントのみ、つまり root 以降のすべてを含む新しいパスを作成します。


func reserveCapacity(Int)

minimumCapacity のプラットフォーム文字を保存するのに十分な記憶装置スペースを予約します。


func starts(with: FilePath) -> Bool

パス全体のコンポーネントのみを考慮して、otherself の接頭辞であるかどうかを返します。


func withPlatformString<Result>((UnsafePointer<CInterop.PlatformChar>) throws -> Result) rethrows -> Result

null で終了するプラットフォーム文字列として表されるファイルパスの内容へのポインタを使用して、与えられたクロージャを呼び出します。



デフォルトの実装


  CustomDebugStringConvertible の実装

  CustomStringConvertible の実装

  Decodable の実装

  Encodable の実装

  Equatable の実装

  ExpressibleByExtendedGraphemeClusterLiteral の実装

  ExpressibleByStringLiteral の実装

  ExpressibleByUnicodeScalarLiteral の実装

  Hashable の実装





関連


以下に準拠


Copyable

CustomDebugStringConvertible

CustomStringConvertible

Decodable

Encodable

Equatable

ExpressibleByExtendedGraphemeClusterLiteral

ExpressibleByStringLiteral

ExpressibleByUnicodeScalarLiteral

Hashable

Sendable





以下も見よ


ファイル


struct FileDescriptor

ファイルやソケットなどの入力または出力データリソースへの抽象ハンドル。


struct FilePermissions

ファイルのアクセス権限。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ