Go – File Handling
Estimated reading: 3 minutes 292 views

Go – Delete File with os.Remove: Syntax, Safety & Examples (2025 Guide)

Introduction – Why Delete Files in Go?

In Go, you can delete a file using the os.Remove() function. Whether you’re cleaning up temp files, removing logs, or deleting user uploads, file removal is simple and effective with built-in tools from the os package.

In this guide, you’ll learn:

  • How to delete files using os.Remove
  • Handle missing file errors gracefully
  • Check if file exists before deleting
  • Best practices for secure file deletion

Example – Delete a File Using os.Remove

package main

import (
    "fmt"
    "os"
)

func main() {
    err := os.Remove("example.txt")
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("File deleted successfully.")
    }
}

Output:

File deleted successfully.

os.Remove() deletes the named file (or symbolic link) immediately.


Check If File Exists Before Deleting

if _, err := os.Stat("example.txt"); err == nil {
    err := os.Remove("example.txt")
    if err != nil {
        fmt.Println("Delete failed:", err)
    } else {
        fmt.Println("Deleted file successfully")
    }
} else {
    fmt.Println("File does not exist")
}

Use os.Stat() to avoid trying to delete a file that’s not there.


Delete Directory or File with os.Remove

os.Remove("temp.txt")      // Deletes a file
os.Remove("myfolder")      // Deletes empty directory only

os.Remove() will not delete non-empty directories.


Remove All Files and Folders – os.RemoveAll

err := os.RemoveAll("tempdir")
if err != nil {
    fmt.Println("Error deleting folder:", err)
} else {
    fmt.Println("Directory deleted recursively")
}

os.RemoveAll() deletes a path and everything under it recursively—use with caution.


Handle Errors Like a Pro

Error TypeWhat It Means
file not foundFile doesn’t exist
permission deniedInsufficient rights to delete
is a directoryAttempted to delete a folder with os.Remove

Use errors.Is(err, os.ErrNotExist) for precise error checking.


Best Practices

TipWhy It Helps
Use os.Stat() before Remove()Avoid unnecessary errors
Handle permission errorsHelps in multi-user apps or services
Don’t use RemoveAll() blindlyPrevents accidental recursive deletions
Log deleted file namesUseful for audit and debugging

Summary – Recap & Next Steps

Go makes file deletion easy, safe, and powerful using just the os package. Whether deleting a single file or an entire folder tree, Go’s built-in functions are all you need.

Key Takeaways:

  • Use os.Remove() to delete single files or empty folders
  • Use os.RemoveAll() for recursive deletion
  • Check file existence with os.Stat() before deleting
  • Always handle and log errors clearly

Next: Learn about Creating and Renaming Files, Working with Temp Files, or explore File Permission Handling in Go.


FAQs – Go Delete File

What does os.Remove() do in Go?
It deletes the specified file or an empty directory.

How can I delete a folder and all its content?
Use os.RemoveAll("folder_name").

What if I try to delete a file that doesn’t exist?
You’ll get an error. Use os.Stat() to check beforehand.

Can I delete open files in Go?
Yes, but the OS may prevent it if the file is currently in use.

Is os.Remove() thread-safe?
File deletion is safe in general, but always coordinate in concurrent code.


Share Now :
Share

Go Delete File

Or Copy Link

CONTENTS
Scroll to Top