<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
學習筆記,寫到哪是哪。
接著上一篇對純文字檔案讀寫操作,主要去實現一些資料夾操作。
建立資料夾的時候往往要先判斷資料夾是否存在。
樣例程式碼如下
package main import ( "bufio" "fmt" "io" "os" ) //判斷資料夾是否存在 func HasDir(path string) (bool, error) { _, _err := os.Stat(path) if _err == nil { return true, nil } if os.IsNotExist(_err) { return false, nil } return false, _err } //建立資料夾 func CreateDir(path string) { _exist, _err := HasDir(path) if _err != nil { fmt.Printf("獲取資料夾異常 -> %vn", _err) return } if _exist { fmt.Println("資料夾已存在!") } else { err := os.Mkdir(path, os.ModePerm) if err != nil { fmt.Printf("建立目錄異常 -> %vn", err) } else { fmt.Println("建立成功!") } } } func main() { CreateDir("./output") }
執行結果
建立成功!
Process finished with the exit code 0
注意
1、其中os.ModePerm主要是對建立資料夾的授權,瞭解linux的會比較熟悉。
其中 ModePerm FileMode = 0777,也就是最高許可權,可讀可寫可執行。
也可以直接使用os.FileMode(644).String()。
使用os.Remove方法來刪除檔案,使用os.RemoveAll方法來刪除資料夾。
可以看一下RemoveAll的內部實現,整體上就是遍歷和遞迴操作。
樣例程式碼如下
//刪除檔案 func RemoveFile(path string) error { _err := os.Remove(path) return _err } //刪除資料夾 func RemoveDir(path string) error { _err := os.RemoveAll(path) return _err }
總的來說直接使用os,和Python一樣,麻煩,還是得找個工具庫來操作,方便簡潔一點。而且一直往上傳遞error的方式讓我頭大,好煩啊。
當然Golang還能實現一些常見的檔案操作,如網路檔案下載,讀寫csv檔案等,以下是實現程式碼
網路檔案下載
package main import ( "fmt" "github.com/zhangdapeng520/zdpgo_file" ) func main() { f := zdpgo_file.New() savePath := "./" // 單個下載 url := "https://avatar.csdnimg.cn/2/9/0/1_togolife.jpg" err := f.Download.Download(savePath, url) if err != nil { fmt.Println("下載失敗:", err) } else { fmt.Println("下載成功") } // 批次下載 urls := []string{ "https://alifei04.cfp.cn/creative/vcg/nowarter800/new/VCG41N695593548.jpg", "https://tenfei02.cfp.cn/creative/vcg/nowarter800/new/VCG41N1014325904.jpg", "https://tenfei05.cfp.cn/creative/vcg/nowater800/new/VCG41545444880.jpg", } f.Download.Downloads(savePath, urls) }
讀寫csv
package main import ( "fmt" "github.com/zhangdapeng520/zdpgo_file" ) func main() { f := zdpgo_file.New() data := [][]string{ {"a", "b", "c"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, {"111", "222", "333"}, } // 寫入 f.Csv.Write("test.csv", data) // 讀取 dataNew, err := f.Csv.Read("test.csv") if err != nil { fmt.Println(err) } fmt.Println(dataNew) }
到此這篇關於Golang實現資料夾的建立與刪除的方法詳解的文章就介紹到這了,更多相關Golang資料夾建立 刪除內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45