Golangでディレクトリを横断する方法は何ですか?
Go言語では、ファイルパスパッケージを使用してディレクトリを走査することができます。以下は簡単な例です:
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// 设置要遍历的文件夹路径
root := "/path/to/folder"
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 判断是否是文件夹
if info.IsDir() {
fmt.Println("文件夹:", path)
} else {
fmt.Println("文件:", path)
}
return nil
})
if err != nil {
fmt.Println("遍历文件夹时发生错误:", err)
}
}
上記の例では、フォルダを走査するために filepath.Walk 関数を使用しました。この関数はフォルダのパスを引数として受け取り、フォルダとそのサブフォルダを再帰的に走査します。各フォルダとファイルのコールバック関数では、ファイルのパスや情報(フォルダであるかどうかなど)、および可能なエラーを取得することができます。
“/path/to/folder” を適切なフォルダーのパスに置き換えるだけで、処理が完了します。