github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/path/path.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // パッケージパスは、スラッシュで区切られたパスを操作するためのユーティリティルーチンを実装します。 6 // 7 // pathパッケージは、URLのパスなど、スラッシュで区切られたパスにのみ使用する必要があります。 8 // このパッケージは、ドライブレターやバックスラッシュを含むWindowsパスに対処しません。 9 // オペレーティングシステムのパスを操作するには、 [path/filepath] パッケージを使用してください。 10 package path 11 12 // Clean関数は、パスを純粋に字句処理して、最短のパス名に変換します。 13 // 以下のルールを反復処理して、処理できる限り適用します: 14 // 15 // 1. 連続するスラッシュを単一のスラッシュに置き換えます。 16 // 2. 各「.」パス名要素(現在のディレクトリ)を削除します。 17 // 3. 各「..」パス名要素(親ディレクトリ)とそれに先行する「..」以外の要素を削除します。 18 // 4. ルートパスを始める「..」要素を削除します: 19 // つまり、パスの先頭にある「/..」を「/」に置き換えます。 20 // 21 // 返されるパスの末尾には、ルート「/」の場合にのみスラッシュがあります。 22 // 23 // この処理結果が空の文字列の場合、Clean関数は「.」という文字列を返します。 24 // 25 // 参考文献:Rob Pike, “Lexical File Names in Plan 9 or 26 // Getting Dot-Dot Right,” 27 // https://9p.io/sys/doc/lexnames.html 28 func Clean(path string) string 29 30 // Splitは最後のスラッシュの直後にパスを分割し、 31 // ディレクトリとファイル名のコンポーネントに分ける。 32 // パスにスラッシュがない場合、Splitは空のディレクトリと 33 // ファイルをpathに設定して返します。 34 // 返される値は、path = dir + fileという性質を持っています。 35 func Split(path string) (dir, file string) 36 37 // Joinは任意の数のパス要素をスラッシュで区切って1つのパスに結合します。空の要素は無視されます。結果はクリーンになります。ただし、引数リストが空であるか、その要素がすべて空である場合、Joinは空の文字列を返します。 38 func Join(elem ...string) string 39 40 // Extは、pathで使用されるファイル名の拡張子を返します。 41 // 拡張子は、pathの最後のスラッシュで区切られた要素の最後のドットから始まるサフィックスです。 42 // ドットが存在しない場合は空です。 43 func Ext(path string) string 44 45 // Baseはパスの最後の要素を返します。 46 // 最後の要素を抽出する前に、トレーリングスラッシュは削除されます。 47 // パスが空の場合、Baseは「.」を返します。 48 // パスがすべてのスラッシュで構成されている場合、Baseは「/」を返します。 49 func Base(path string) string 50 51 // IsAbsはパスが絶対パスかどうかを報告します。 52 func IsAbs(path string) bool 53 54 // Dirはパスの最後の要素以外のすべてを返します。通常はパスのディレクトリです。 55 // [Split] を使用して最後の要素を削除した後、パスはクリーン化され、末尾のスラッシュは削除されます。 56 // パスが空の場合、Dirは "." を返します。 57 // パスがスラッシュだけで構成され、スラッシュ以外のバイトが続く場合、Dirは単一のスラッシュを返します。それ以外の場合、返されるパスはスラッシュで終わりません。 58 func Dir(path string) string