(PCC)::[How-to-Create-a-new-sub-directory-in-the-current-working-directory-in-go-language]::[go]
package main import ( "fmt" "io/ioutil" "os" "path/filepath" ) func check(e error) { if e != nil { panic(e) } } func main() { err := os.Mkdir("subdir", 0755) check(err) defer os.RemoveAll("subdir") createEmptyFile := func(name string) { d := []byte("") check(ioutil.WriteFile(name, d, 0644)) } createEmptyFile("subdir/file1") err = os.MkdirAll("subdir/parent/child", 0755) check(err) createEmptyFile("subdir/parent/file2") createEmptyFile("subdir/parent/file3") createEmptyFile("subdir/parent/child/file4") c, err := ioutil.ReadDir("subdir/parent") check(err) fmt.Println("Listing subdir/parent") for _, entry := range c { fmt.Println(" ", entry.Name(), entry.IsDir()) } err = os.Chdir("subdir/parent/child") check(err) c, err = ioutil.ReadDir(".") check(err) fmt.Println("Listing subdir/parent/child") for _, entry := range c { fmt.Println(" ", entry.Name(), entry.IsDir()) } err = os.Chdir("../../..") check(err) fmt.Println("Visiting subdir") err = filepath.Walk("subdir", visit) } func visit(p string, info os.FileInfo, err error) error { if err != nil { return err } fmt.Println(" ", p, info.IsDir()) return nil }