Próbuję wyodrębnić hierarchię katalogu folderu do struktury danych w języku go. filepath.Walk
wydaje się być drogą, ale wszystko, co mogę zrobić, to wydrukować nazwy plików i folderów. Oto, czego używam:Wyodrębnianie hierarchii katalogów przy użyciu języka go
func main() {
visit := func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
fmt.Println("dir: ", path)
} else {
fmt.Println("file: ", path)
}
return nil
}
err := filepath.Walk("./", visit)
if err != nil {
log.Fatal(err)
}
}
ten wypisuje nazwy folderów, takich jak:
dir: folder1
file: folder1/file1.txt
file: folder1/file2.txt
file: folder1/file3.txt
file: folder1/file4.txt
dir: folder1/folder2
file: folder1/folder2/file5.txt
file: folder1/folder2/file6.txt
file: folder1/folder2/file7.txt
file: folder1/folder2/file8.txt
file: folder1/folder2/file9.txt
na strukturze drzewa myślałem o użyciu coś jak:
type File struct {
Name string
Content string
}
type Folder struct {
Name string
Files []File
Folders []Folder
}
ale oczywiście każdy sugestie są mile widziane.
Jak mogę przekonwertować to na strukturę drzewa w programie? Czy istnieje prostszy sposób na zrobienie tego?
otrzymuję poczucie, że odpowiedź jest prawdą to jednak nie działa na moim komputerze mówiąc '30.09.2012 13:25:23 Oczekiwane zagnieżdżone strony folderów na stronach status wyjścia 1' – none
Nie jestem pewien, co by to spowodowało. Jak już powiedziałem, jest to szybki i brudny kod ilustrujący koncepcję. Powinieneś być w stanie debugować i/lub zmieniać to z tego miejsca. –
Ponieważ kod był dłuższy niż się spodziewałem, postanowiłem pójść w inny sposób z moim projektem. Tymczasem zostawię pytanie otwarte na jakiś czas, na wypadek gdyby ktoś wymyślił eleganckie rozwiązanie. Dzięki za pomoc .. – none