আমরা বিভিন্ন গোলং স্ট্যান্ডার্ড লাইব্রেরি ফাংশন ব্যবহার করে ফাইল সিস্টেমে একটি ফোল্ডারের ভিতরে ফাইলগুলির একটি তালিকা পেতে পারি।
- filepath.Walk
- ioutil.ReadDir
- os.File.Readdir
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"path/filepath"
)
func main() {
var (
root string
files []string
err error
)
root := "/home/manigandan/golang/samples"
// filepath.Walk
files, err = FilePathWalkDir(root)
if err != nil {
panic(err)
}
// ioutil.ReadDir
files, err = IOReadDir(root)
if err != nil {
panic(err)
}
//os.File.Readdir
files, err = OSReadDir(root)
if err != nil {
panic(err)
}
for _, file := range files {
fmt.Println(file)
}
}
- ফাইলপথ.ওয়াল্ক ব্যবহার করা হচ্ছে
path/filepath
প্যাকেজ, এটি স্বয়ংক্রিয়ভাবে ডিরেক্টরির মধ্যে প্রতিটি উপ-ডিরেক্টরির স্ক্যান করবে একটি ডিরেক্টরির মধ্যে সমস্ত ফাইল স্ক্যান করতে একটি সহজ উপায় প্রদান করে।
func FilePathWalkDir(root string) ([]string, error) {
var files []string
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
files = append(files, path)
}
return nil
})
return files, err
}
- Ioutil.ReadDir ব্যবহার করা হচ্ছে
ioutil.ReadDir
ডায়ারনেম অনুসারে ডিরেক্টরিটি পড়ে এবং ফাইলের নাম অনুসারে বাছাই করা ডিরেক্টরি তালিকা প্রবেশ করে list
func IOReadDir(root string) ([]string, error) {
var files []string
fileInfo, err := ioutil.ReadDir(root)
if err != nil {
return files, err
}
for _, file := range fileInfo {
files = append(files, file.Name())
}
return files, nil
}
- Os.File.Readdir ব্যবহার করে
রিডডিয়ার ফাইলের সাথে সম্পর্কিত ডিরেক্টরিগুলির বিষয়বস্তু পড়েন এবং ডিরেক্টরি অনুসারে লস্ট্যাট দ্বারা ফেরত দেওয়া হিসাবে এন ফাইলআইএনফোর মানগুলির একটি স্লাইস প্রদান করে। একই ফাইলটিতে পরবর্তী কলগুলি পরবর্তী ফাইলআইনফসগুলি দেবে।
func OSReadDir(root string) ([]string, error) {
var files []string
f, err := os.Open(root)
if err != nil {
return files, err
}
fileInfo, err := f.Readdir(-1)
f.Close()
if err != nil {
return files, err
}
for _, file := range fileInfo {
files = append(files, file.Name())
}
return files, nil
}
বেঞ্চমার্ক ফলাফল।
এই ব্লগ পোস্টে আরও বিশদ পান