Creating files and directories

  • few general ways you can create files and directories in code.

Create the create.go file with the following content:

package main

import (

func main() {

	f, err := os.Create("created.file")
	if err != nil {

	f, err = os.OpenFile("created.byopen", os.O_CREATE|os.O_APPEND,
	if err != nil {

	err = os.Mkdir("createdDir", 0777)
	if err != nil {

	err = os.MkdirAll("sampleDir/path1/path2", 0777)
	if err != nil {



sangam:golang-daily sangam$ create.go
sangam:golang-daily sangam$ tree
├── binary
├── config.json
├── content.dat
├── created.byopen
├── created.file
├── createdDir
├── data.csv
├── data.xml
├── example.txt
├── flatfile.txt
├── main.go
├── sample.file
├── sample.txt
├── sampleDir
│   └── path1
│       └── path2

How it works…

  • The previous example represents four ways you can create a file or directory. The os.Create function is the simplest way to create the file. By using this function, you will create the file with permissions such as 0666.

  • If you need to create the file with any other configuration of permissions, then the OpenFile function of the os package is the one to be used.

  • The directories can be created by using the Mkdir function of the os package. This way, a directory with given permissions is created. The second option is to use the MkdirAll function. This function also creates the directory, but if the given path contains non-exiting directories, then all directories in the path are created (it works the same as the -p option of Unix’s mkdir utility).