Created
November 6, 2019 08:59
-
-
Save xiocode/7adc7c94d1ca9eb65ee745c038b4ae70 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package segment | |
import ( | |
"errors" | |
"fmt" | |
"io/ioutil" | |
"os" | |
"path/filepath" | |
"sync" | |
) | |
func DeleteDir(filedir string) error { | |
var w sync.WaitGroup | |
filelist, err := ioutil.ReadDir(filedir) | |
if err != nil { | |
return err | |
} | |
for _, value := range filelist { | |
if value.IsDir() { | |
w.Add(1) | |
go func(name string) { | |
defer w.Done() | |
DeleteDir(filepath.Join(filedir, name)) | |
}(value.Name()) | |
} else { | |
w.Add(1) | |
go func(name string) { | |
defer w.Done() | |
DeleteFile(filepath.Join(filedir, name)) | |
}(value.Name()) | |
} | |
} | |
w.Wait() | |
err = os.Remove(filedir) | |
if err != nil { | |
fmt.Printf("remove file error : %s \n", err.Error()) | |
} | |
return err | |
} | |
func DeleteDirAll(filedir string) error { | |
if IsDir(filedir) { | |
err := DeleteDir(filedir) | |
if err != nil { | |
fmt.Printf("delete dir failed : %s \n", err.Error()) | |
return err | |
} | |
return nil | |
} else { | |
return DeleteFile(filedir) | |
} | |
} | |
func DeleteFile(filename string) error { | |
if IsExist(filename) { | |
return os.Remove(filename) | |
} | |
return errors.New("file not exist") | |
} | |
func IsDir(filename string) bool { | |
fi, err := os.Stat(filename) | |
if err != nil { | |
return false | |
} | |
if fi == nil { | |
return false | |
} | |
if fi.IsDir() { | |
return true | |
} | |
return false | |
} | |
func IsExist(filename string) bool { | |
fi, err := os.Stat(filename) | |
if err != nil { | |
fmt.Printf("file path not exist : %s \n", err.Error()) | |
return false | |
} | |
if fi != nil { | |
return true | |
} | |
return false | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment