Golang : Check if directory exist and create if does not exist

Anyway, need to modify an existing Golang program for a friend. The original developer left her company and basically, she needs the program to check if a directory/folder exist or not. If it is not there, create the folder and also need to report if and why the directory creation failed.

Below is a function that should check if a directory exists and create one if it does not exist.

Here you go!

 package main

 import (

 func createDirectory(dirName string) bool {
 src, err := os.Stat(dirName)

 if os.IsNotExist(err) {
 errDir := os.MkdirAll(dirName, 0755)
 if errDir != nil {
 return true

 if src.Mode().IsRegular() {
 fmt.Println(dirName, "already exist as a file!")
 return false

 return false

 func main() {
 if len(os.Args) != 2 {
 fmt.Printf("Usage : %s <directory>\n", os.Args[0])

 directory := os.Args[1]

 result := createDirectory(directory)
 fmt.Println(directory, "created : ", result)

Sample output:

$ ./createdirifnotexist

Usage : ./createdirifnotexist

$ ./createdirifnotexist webserver

webserver already exist as a file!

webserver created : false

$ ./createdirifnotexist webserver2

webserver2 created : true

$ ./createdirifnotexist webserver2

webserver2 created : false

$ rm -rf webserver2

$ ./createdirifnotexist webserver2

webserver2 created : true

Happy coding!




  See also : Golang : Determine if directory is empty with os.File.Readdir() function

By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.