構造体


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

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



ファイルパスの操作


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 つの値が等しくないかどうかを示すブール値を返します。




@@@@@@@@@@@@@@@@@
11/6 ここまで
@@@@@@@@@@@@@@@@@


func hash(into: inout Hasher)

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


var hashValue: Int

ハッシュ値です。




@@@@@@@@@@@@@@@@@
11/5 ここまで
@@@@@@@@@@@@@@@@@





以下も見よ














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ