好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Golang 文件操作:刪除指定的文件方式

Golang 文件操作:刪除指定的文件方式

熱門標簽:外呼系統用什么卡 評價高的400電話辦理 外呼系統顯本地手機號 涿州代理外呼系統 阿克蘇地圖標注 電話機器人軟件免費 壽光微信地圖標注 百度地圖標注后傳給手機 excel地圖標注分布數據

我就廢話不多說了,大家還是直接看代碼吧~

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.Copy
func 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)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決go build不去vendor下查找包的問題
  • 解決GOPATH在GOLAND中的坑
  • golang 如何刪除二進制文件中的源碼路徑信息
  • Golang 刪除文件并遞歸刪除空目錄的操作
  • go run main.go 一直提示找不到包的解決方案

標簽:汕頭 重慶 雞西 欽州 吐魯番 梅河口 蘭州 銅川

巨人網絡通訊聲明:本文標題《Golang 文件操作:刪除指定的文件方式》,本文關鍵詞  Golang,文件,操作,刪除,指,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang 文件操作:刪除指定的文件方式》相關的同類信息!
  • 本頁收集關于Golang 文件操作:刪除指定的文件方式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产又黄又潮娇喘视频免费| 手伸进她的乳罩里揉她的奶头| 差差差视频很痛30分钟视频| 美女胸黄污污污www网站久久| 亚洲精品主播一区二区三区| 污网站免费观看| 樱井利亚在线| 午夜理论在线观看视频无码| 国产成人精品一区| 中文字幕亚洲一区二区v@在线| 色戒未删减在线播放| 美国全免费特一级毛片| 亚洲v精品v日韩v欧美V专区| 亚洲精品乱码久久久久| 国产v日韩v欧美v精品专区| 小黄书在线| 国产AV无遮挡喷水白浆铁牛视频 | 在线播放网站| 女人扒开腿秘?免费网站| 国产自在自线午夜精品视频| 性感美女叫床| 高h肉肉视频在线播放观看| 暴露放荡的娇妻| 亚洲AV综合色区无码六区偷拍| 中国女人一级一次看片| 大逼逼干干| 毛片试看区| 亚洲国产日韩综合久久精品| 国产精品jizz观看| 曰本女人牲交视频AAA| 女人张开腿让男人桶网战| 丰满熟妇大号BBWBBWBBW| 在丈夫面前被侵犯电影| 日产一二三区别免费必看| 亚洲伊人色| 大清风云50集在线观看免费| 生子系统H肉np文| 唾液と爱液の接吻无码| 赵菇珍19禁电影在线观看 | 欧美经典四级老片AV| 艳妇系列小说h|