How to Check If a File Exists in Go

To check if a file exists in Golang, you can use the os.Stat() function that returns a FileInfo structure containing information about the file. If the file exists, os.Stat() function returns nil and no error, and if the file does not exist, it returns an error.


fileInfo, error := os.Stat(fileName)


fileName: The name of the file whose stats are to be retrieved.


package main

import (

func fileExists(filename string) bool {
  _, err := os.Stat(filename)
  if err != nil {
    if os.IsNotExist(err) {
      return false
  return true

func main() {
  if fileExists("data.txt") {
    fmt.Println("File exists")
  } else {
    fmt.Println("File does not exist")


File exists

In this example, the os.Stat() function is called with the filename as its argument. The returned FileInfo structure is not used, and instead, the function checks the error returned by os.Stat(). If the error is nil, the file exists, and the function returns true.

If the error is not nil, the function checks if the error is an os.IsNotExist() function error returns false, suggesting that the file does not exist.

If the error is not an os.IsNotExist() function error, the function assumes that the file exists and returns true.

That’s it.

Leave a Comment