Goでディレクトリ操作をしてみる

Go

ディレクトリ作成

package main

import (
	"fmt"
	"os"
)

func main() {
	dirName := "testDir"

	err := os.Mkdir(dirName, 0755)
	if err != nil {
		fmt.Println("Error creating directory:", err)
		return
	}

	fmt.Println("Directory created successfully:", dirName)
}

ディレクトリ作成(再帰)

package main

import (
	"fmt"
	"os"
)

func main() {
	dirName := "dir1/dir2/dir3"

	err := os.MkdirAll(dirName, 0755)
	if err != nil {
		fmt.Println("Error creating directories:", err)
		return
	}

	fmt.Println("Directories created successfully:", dirName)
}

ディレクトリ一覧取得

package main

import (
	"fmt"
	"os"
)

func main() {
	dirName := "."

	files, err := os.ReadDir(dirName)
	if err != nil {
		fmt.Println("Error reading directory:", err)
		return
	}

	for _, file := range files {
		fmt.Println(file.Name())
	}
}

ディレクトリ一覧取得(再帰)

package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func main() {
	dirName := "."

	err := filepath.Walk(dirName, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		fmt.Println(path)
		return nil
	})
	if err != nil {
		fmt.Println("Error walking through directory:", err)
	}
}

ディレクトリ削除

package main

import (
	"fmt"
	"os"
)

func main() {
	dirName := "testDir"

	err := os.Remove(dirName)
	if err != nil {
		fmt.Println("Error removing directory:", err)
		return
	}

	fmt.Println("Directory removed successfully:", dirName)
}

ディレクトリ削除(再帰)

package main

import (
	"fmt"
	"os"
)

func main() {
	dirName := "dir1"

	err := os.RemoveAll(dirName)
	if err != nil {
		fmt.Println("Error removing directory:", err)
		return
	}

	fmt.Println("Directory removed successfully:", dirName)
}