সম্পাদনা করুন : এখনও যথেষ্ট লোকেরা এই উত্তরটিকে আঘাত করে, আমি ভেবেছিলাম যে আমি এটি Go1 API এর জন্য আপডেট করব। এটি ফাইলপথের একটি কার্যকরী উদাহরণ working ওয়ালক () । মূলটি নীচে রয়েছে।
package main
import (
"path/filepath"
"os"
"flag"
"fmt"
)
func visit(path string, f os.FileInfo, err error) error {
fmt.Printf("Visited: %s\n", path)
return nil
}
func main() {
flag.Parse()
root := flag.Arg(0)
err := filepath.Walk(root, visit)
fmt.Printf("filepath.Walk() returned %v\n", err)
}
অনুগ্রহ করে নোট করুন যে ফাইলপথ। ওয়াক ডিরেক্টরি ট্রিটিকে পুনরাবৃত্তভাবে হাঁটাচ্ছে।
এটি একটি উদাহরণ চালানো:
$ mkdir -p dir1/dir2
$ touch dir1/file1 dir1/dir2/file2
$ go run walk.go dir1
Visited: dir1
Visited: dir1/dir2
Visited: dir1/dir2/file2
Visited: dir1/file1
filepath.Walk() returned <nil>
মূল উত্তরটি অনুসরণ করুন: ফাইল পাথের হাঁটার জন্য ইন্টারফেসটি সাপ্তাহিক ২০১১-০৯-১-16 হিসাবে পরিবর্তিত হয়েছে, দেখুন http://groups.google.com/group/golang-nuts/msg/e304dd9cf196a218 । নীচের কোডটি অদূর ভবিষ্যতে জিওর প্রকাশ সংস্করণগুলির জন্য কাজ করবে না।
কেবলমাত্র এর জন্য স্ট্যান্ডার্ড লিবে একটি ফাংশন রয়েছে: ফাইলপথ.ওয়াল্ক ।
package main
import (
"path/filepath"
"os"
"flag"
)
type visitor int
// THIS CODE NO LONGER WORKS, PLEASE SEE ABOVE
func (v visitor) VisitDir(path string, f *os.FileInfo) bool {
println(path)
return true
}
func (v visitor) VisitFile(path string, f *os.FileInfo) {
println(path)
}
func main() {
root := flag.Arg(0)
filepath.Walk(root, visitor(0), nil)
}