特定のファイルを開きたい"directory/subdirectory/file.txt"
golangで。 OSに依存しない方法でそのようなパスを表現するための推奨される方法は何ですか(つまり、Windowsのバックスラッシュ、MacおよびLinuxのスラッシュ)。 Pythonのos.path
モジュール?
OS固有のパスを直接作成および操作するには、 _os.PathSeparator
_ および _path/filepath
_ パッケージを使用します。
別の方法は、プログラム全体で常に_'/'
_および path
パッケージを使用することです。 path
パッケージは、OSに関係なく、パス区切り文字として_'/'
_を使用します。ファイルを開くまたは作成する前に、 filepath.FromSlash(path string)
を呼び出して、/-で区切られたパスをOS固有のパス文字列に変換します。 OSから返されたパスは、 filepath.ToSlash(path string)
を呼び出すことにより、/-で区切られたパスに変換できます。
使用する - path/filepath
path
ではなく。 path
は、スラッシュで区切られたパス(URLで使用されるパスなど)のみを対象としていますが、path/filepath
は、異なるオペレーティングシステム全体のパスを操作します。
@EvanShawと このブログ の回答に基づいて、次のコードが作成されました。
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
p := filepath.FromSlash("path/to/file")
fmt.Println("Path: " + p)
}
戻り値:
Path: path\to\file
windowsで。
Goはスラッシュ(/
)すべてのプラットフォームでの汎用セパレータとして [1] 。 "directory/subdirectory/file.txt"
は、ランタイムオペレーティングシステムに関係なく正しく開かれます。