我就废话不多说了,大家还是直接看代码吧~

package main import "os" func main () {     err := os.Remove(logFile)     if err != nil {        // 删除失败     } else {        // 删除成功      }}

补充:[Golang]文件/文件夹一般操作:判断、复制、删除、遍历

1. 检查指定路径是否为文件夹

func IsDir(name string) bool { if info, err := os.Stat(name); err == nil {  return info.IsDir() } return false}

2. 检查文件是否存在

func FileIsExisted(filename string) bool { existed := true if _, err := os.Stat(filename); os.IsNotExist(err) {  existed = false } return existed}

3. 创建文件夹(如果文件夹不存在则创建)

func MakeDir(dir string) error { if !FileIsExisted(dir) {  if err := os.MkdirAll(dir, 0777); err != nil { //os.ModePerm   fmt.Println("MakeDir failed:", err)   return err  } } return nil}

4. 复制文件

复制文件过程中一定要注意将原始文件的权限也要复制过去,否则可能会导致可执行文件不能执行等问题。

//使用io.Copyfunc CopyFile(src, des string) (written int64, err error) { srcFile, err := os.Open(src) if err != nil {  return 0, err } defer srcFile.Close()  //获取源文件的权限 fi, _ := srcFile.Stat() perm := fi.Mode()  //desFile, err := os.Create(des)  //无法复制源文件的所有权限 desFile, err := os.OpenFile(des, os.O_RDWR|os.O_CREATE|os.O_TRUNC, perm)  //复制源文件的所有权限 if err != nil {  return 0, err } defer desFile.Close()  return io.Copy(desFile, srcFile)}  //使用ioutil.WriteFile()和ioutil.ReadFile()func CopyFile2(src, des string) (written int64, err error) { //获取源文件的权限 srcFile, err := os.Open(src) if err != nil {  return 0, err } fi, _ := srcFile.Stat() perm := fi.Mode() srcFile.Close()  input, err := ioutil.ReadFile(src) if err != nil {  return 0, err }  err = ioutil.WriteFile(des, input, perm) if err != nil {  return 0, err }  return int64(len(input)), nil}  //使用os.Read()和os.Write()func CopyFile3(src, des string, bufSize int) (written int64, err error) { if bufSize <= 0 {  bufSize = 1*1024*1024   //1M } buf := make([]byte, bufSize)  srcFile, err := os.Open(src) if err != nil {  return 0, err } defer srcFile.Close()  //获取源文件的权限 fi, _ := srcFile.Stat() perm := fi.Mode()  desFile, err := os.OpenFile(des, os.O_CREATE|os.O_RDWR|os.O_TRUNC, perm) if err != nil {  return 0, err } defer desFile.Close()  count := 0 for {  n, err := srcFile.Read(buf)  if err != nil && err != io.EOF {   return 0, err  }   if n == 0 {   break  }   if wn, err := desFile.Write(buf[:n]); err != nil {   return 0, err  } else {   count += wn  } }  return int64(count), nil}

5. 复制整个文件夹

func CopyDir(srcPath, desPath string) error { //检查目录是否正确 if srcInfo, err := os.Stat(srcPath); err != nil {  return err } else {  if !srcInfo.IsDir() {   return errors.New("源路径不是一个正确的目录!")  } }  if desInfo, err := os.Stat(desPath); err != nil {  return err } else {  if !desInfo.IsDir() {   return errors.New("目标路径不是一个正确的目录!")  } }  if strings.TrimSpace(srcPath) == strings.TrimSpace(desPath) {  return errors.New("源路径与目标路径不能相同!") }  err := filepath.Walk(srcPath, func(path string, f os.FileInfo, err error) error {  if f == nil {   return err  }   //复制目录是将源目录中的子目录复制到目标路径中,不包含源目录本身  if path == srcPath {   return nil  }   //生成新路径  destNewPath := strings.Replace(path, srcPath, desPath, -1)   if !f.IsDir() {   CopyFile(path, destNewPath)  } else {   if !FileIsExisted(destNewPath) {    return MakeDir(destNewPath)   }  }   return nil })  return err}

6. 遍历指定文件夹中的所有文件(不进入下一级子目录)

/* 获取指定路径下的所有文件,只搜索当前路径,不进入下一级目录,可匹配后缀过滤(suffix为空则不过滤)*/func ListDir(dir, suffix string) (files []string, err error) {   files = []string{}    _dir, err := ioutil.ReadDir(dir)   if err != nil {      return nil, err   }    suffix = strings.ToLower(suffix)  //匹配后缀    for _, _file := range _dir {      if _file.IsDir() {         continue   //忽略目录      }      if len(suffix) == 0 || strings.HasSuffix(strings.ToLower(_file.Name()), suffix) {         //文件后缀匹配         files = append(files, path.Join(dir, _file.Name()))      }   }    return files, nil}

7. 遍历指定路径及其子目录中的所有文件

/* 获取指定路径下以及所有子目录下的所有文件,可匹配后缀过滤(suffix为空则不过滤)*/func WalkDir(dir, suffix string) (files []string, err error) { files = []string{}  err = filepath.Walk(dir, func(fname string, fi os.FileInfo, err error) error {  if fi.IsDir() {   //忽略目录   return nil  }   if len(suffix) == 0 || strings.HasSuffix(strings.ToLower(fi.Name()), suffix) {   //文件后缀匹配   files = append(files, fname)  }   return nil })  return files, err}

8. 删除文件

os.Remove(filename)

9. 删除文件夹及其包含的所有子目录和所有文件

os.RemoveAll(dir)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/panguangyuu/article/details/89609252