ホームページ >バックエンド開発 >Golang >path/filepath.Glob 関数を使用して、指定されたモードのファイル パス リストを一覧表示し、ファイル情報オブジェクト リストとエラー メッセージを返します。

path/filepath.Glob 関数を使用して、指定されたモードのファイル パス リストを一覧表示し、ファイル情報オブジェクト リストとエラー メッセージを返します。

WBOY
WBOYオリジナル
2023-07-24 19:53:271516ブラウズ

タイトル: Go 言語は path/filepath.Glob 関数を使用してファイル パス リストとファイル情報を取得します

はじめに:
開発プロセス中、多くの場合、ファイル パス リストを取得する必要があります。指定したパターンを取得すると同時に、対応するファイルの詳細を取得します。 Go 言語の path/filepath パッケージは、この要件を満たす Glob 関数を提供します。この記事では、Glob 関数を使用して、指定したパターンでファイル パスのリストを一覧表示し、同時にファイル情報オブジェクトとエラー メッセージのリストを返す方法を紹介します。

1. パス/ファイルパス パッケージ
Go 言語が提供するパス/ファイルパス パッケージは、パスとファイル名に対するいくつかの一般的な操作を実装する標準ライブラリにあります。 Glob 関数は、指定されたパターンのファイル パスと一致し、一致するファイル パスのリストを返すことができます。

2. Glob 関数を使用してファイル パス リストを取得する
以下では、簡単な例を使用して、Glob 関数を使用してファイル パス リストを取得する方法を示します。指定されたディレクトリ内のサフィックス「.txt」を持つすべてのファイル パスのリストを取得する必要があると仮定します。

サンプル コードは次のとおりです。

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    // 指定目录
    dir := "./path/to/dir"

    // 模式匹配
    pattern := filepath.Join(dir, "*.txt")

    // 获取匹配的文件路径列表
    filePaths, err := filepath.Glob(pattern)
    if err != nil {
        fmt.Println("获取文件路径列表失败:", err)
        return
    }

    // 打印文件路径列表
    fmt.Println("文件路径列表:")
    for _, filePath := range filePaths {
        fmt.Println(filePath)
    }
}

上記のコードでは、最初にディレクトリ dir を指定し、次に filepath.Join## を使用します。 # ディレクトリパスを結合する関数 パターンと結合して、一致するパターン pattern を生成します。次に、filepath.Glob 関数を呼び出し、パターン pattern を渡して、ファイル パス リスト filePaths を取得します。最後に、リストを反復処理してすべてのファイル パスを出力します。

3. ファイル情報オブジェクト一覧とエラーメッセージを返す

ファイルパス一覧を取得すると同時に、各ファイルの詳細情報も取得できます。
os.Stat 関数を呼び出して、指定したパスのファイル情報を取得します。次に、上記のサンプルコードを改良して、ファイル情報オブジェクトの一覧とエラー情報を取得します。

サンプル コードは次のとおりです。

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    // 指定目录
    dir := "./path/to/dir"

    // 模式匹配
    pattern := filepath.Join(dir, "*.txt")

    // 获取匹配的文件路径列表
    filePaths, err := filepath.Glob(pattern)
    if err != nil {
        fmt.Println("获取文件路径列表失败:", err)
        return
    }

    // 获取文件信息列表
    var fileInfos []os.FileInfo
    for _, filePath := range filePaths {
        fileInfo, err := os.Stat(filePath)
        if err != nil {
            fmt.Println("获取文件信息失败:", err)
            continue
        }
        fileInfos = append(fileInfos, fileInfo)
    }

    // 打印文件路径及信息
    fmt.Println("文件路径及信息:")
    for i, filePath := range filePaths {
        fileInfo := fileInfos[i]
        fmt.Println("文件路径:", filePath)
        fmt.Println("文件大小:", fileInfo.Size())
        fmt.Println("文件修改时间:", fileInfo.ModTime())
        fmt.Println("文件权限:", fileInfo.Mode().String())
    }
}

上記のコードでは、ファイル パス リストを取得する際に、各ファイル パスをループして、

os.Stat# を呼び出します。 ## 対応するファイルの詳細を取得する関数。各ファイルの情報を fileInfos リストに保存します。最後に、リストをたどってファイル パスと詳細を出力します。 終了:

この記事では、Go 言語の path/filepath パッケージの Glob 関数を使用して、指定されたパターンのファイル パスのリストを取得し、ファイル情報オブジェクトのリストとエラー メッセージを返す方法を紹介します。同時に。コード例の説明を通じて、読者はこの関数をよりよく理解し、独自の開発ニーズを満たすためにこの関数を使用することができます。この記事が読者のお役に立てば幸いです。

以上がpath/filepath.Glob 関数を使用して、指定されたモードのファイル パス リストを一覧表示し、ファイル情報オブジェクト リストとエラー メッセージを返します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。