Go 1.8.1を使用して、ファイルを処理するものを作成しようとしています。問題は、filepath.Walk(...)
がうまく動作しますが、私はもう少し柔軟なものが必要です。だから私はioutil.ReadDir(...)
に回って、壮大な "panic: runtime error: invalid memory address or nil pointer dereference
"で挨拶されるだけです。私は選択肢(filepath.Glob(...)
、file.Readdirnames(...)
)を試しましたが、すべて同じエラーになります。 実際に困惑しているのは、filepath.Walk(...)
がos.Lstat(...)
を使用していますが、os.Lstat(...)
を直接使用しようとすると...私は上記と同じエラーが発生します。 更新されたUbuntu 16.04 LTSと更新されたFedora 25でこれを試しましたが、違いはありませんでした。フォルダーの内容を表示するエラー
私のGo-fuは本当に弱いです(これは「hello world」以外の私の最初のアプリケーションです)。
ここで失敗するいくつかのコードです:あなたのerr
チェックは私に後方に見える
func walk() {
err := filepath.Walk(folder, printWalk)
if err != nil {
log.Fatal(os.Stderr, "walk failed with error: %v\n", err)
}
}
func printWalk(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
fmt.Println("path:", path, "FileInfo.Name:", info.Name())
return nil
}
コードを投稿できますか? – Tobias
あなたの質問をそのコードで更新/編集していただけますか? – Tobias
愚かな質問: 'folder'がどのようにグローバル変数であるかを見ると、' readDir'関数呼び出しの前に初期化されていない可能性がありますか? – maksimov