Estoy tratando de extraer la jerarquía de directorios de una carpeta en una estructura de datos en el idioma go. filepath.Walk
parece ser el camino a seguir, pero todo lo que puedo hacer hasta ahora es imprimir los nombres de los archivos y carpetas. Esto es lo que estoy usando:extracción de la jerarquía de directorios usando go language
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)
}
}
este imprime los nombres de las carpetas como:
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
de estructura de árbol Pensé en usar algo como:
type File struct {
Name string
Content string
}
type Folder struct {
Name string
Files []File
Folders []Folder
}
pero por supuesto cualquier sugerencias son bienvenidas
¿Cómo puedo convertir esto en una estructura de árbol en go? ¿Hay alguna forma más fácil de hacer esto?
Me da la sensación de que su respuesta es cierto sin embargo que no se ejecuta en el ordenador diciendo '30/09/2012 13:25:23 Esperado anidado las páginas de la carpeta en las páginas salen del estado 1' – none
No estoy seguro de qué podría causar esto. Como dije, este es un código rápido y sucio para ilustrar el concepto. Debería poder depurarlo y/o cambiarlo desde allí. –
Como el código era más largo de lo que esperaba, decidí ir por otro camino con mi diseño. Mientras tanto, dejaré la pregunta abierta por un tiempo en caso de que alguien pueda encontrar una solución elegante. Gracias por la ayuda .. – none