Golang : Delete files by extension




Being able to select certain type of files to delete can be useful. In this follow up tutorial from Golang : Delete file, we are going to refine it further by only deleting files with certain extension with filepath.Ext() function.

In our case, it will files with .png extension.

Adapting the codes from earlier tutorial, we will add one additional if statement into the code to only delete files with .png extension.

The extra line is if filepath.Ext(file.Name()) == ".png"

deletefilebyextension.go

 package main

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

  func main() {

 dirname := "." + string(filepath.Separator)

 d, err := os.Open(dirname)
 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }
 defer d.Close()

 files, err := d.Readdir(-1)
 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

 fmt.Println("Reading "+ dirname)

 for _, file := range files {
 if file.Mode().IsRegular() {
 if filepath.Ext(file.Name()) == ".png" {
 os.Remove("file.Name()")
 fmt.Println("Deleted ", file.Name())
 }
 }
 }
  }

Put couple of .png files into the same directory as this go program and try it out.

Reference :

http://stackoverflow.com/questions/20115327/golang-rename-the-directory-and-partial-file-renaming

http://golang.org/pkg/os/#File

Golang : Read directory content with os.Open

  See also : Golang : Delete file





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.


Advertisement