最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang實(shí)現(xiàn)文件夾的創(chuàng)建與刪除的方法詳解

 更新時間:2022年05月25日 15:20:38   作者:劍客阿良_ALiang  
這篇文章主要介紹了如何利用Go語言實(shí)現(xiàn)對文件夾的常用操作:創(chuàng)建于刪除。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

學(xué)習(xí)筆記,寫到哪是哪。

接著上一篇對純文本文件讀寫操作,主要去實(shí)現(xiàn)一些文件夾操作。

創(chuàng)建文件夾

創(chuàng)建文件夾的時候往往要先判斷文件夾是否存在。

樣例代碼如下

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
}
 
//創(chuàng)建文件夾
func CreateDir(path string) {
	_exist, _err := HasDir(path)
	if _err != nil {
		fmt.Printf("獲取文件夾異常 -> %v\n", _err)
		return
	}
	if _exist {
		fmt.Println("文件夾已存在!")
	} else {
		err := os.Mkdir(path, os.ModePerm)
		if err != nil {
			fmt.Printf("創(chuàng)建目錄異常 -> %v\n", err)
		} else {
			fmt.Println("創(chuàng)建成功!")
		}
	}
}
 
func main() {
	CreateDir("./output")
}

執(zhí)行結(jié)果

創(chuàng)建成功!

Process finished with the exit code 0

注意

1、其中os.ModePerm主要是對創(chuàng)建文件夾的授權(quán),了解linux的會比較熟悉。

其中 ModePerm FileMode = 0777,也就是最高權(quán)限,可讀可寫可執(zhí)行。

也可以直接使用os.FileMode(644).String()。

刪除文件和文件夾

使用os.Remove方法來刪除文件,使用os.RemoveAll方法來刪除文件夾。

可以看一下RemoveAll的內(nèi)部實(shí)現(xiàn),整體上就是遍歷和遞歸操作。

樣例代碼如下

//刪除文件
func RemoveFile(path string) error {
	_err := os.Remove(path)
	return _err
}
 
//刪除文件夾
func RemoveDir(path string) error {
	_err := os.RemoveAll(path)
	return _err
}

小結(jié)

總的來說直接使用os,和Python一樣,麻煩,還是得找個工具庫來操作,方便簡潔一點(diǎn)。而且一直往上傳遞error的方式讓我頭大,好煩啊。

補(bǔ)充

當(dāng)然Golang還能實(shí)現(xiàn)一些常見的文件操作,如網(wǎng)絡(luò)文件下載,讀寫csv文件等,以下是實(shí)現(xiàn)代碼

網(wǎng)絡(luò)文件下載

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)
}

到此這篇關(guān)于Golang實(shí)現(xiàn)文件夾的創(chuàng)建與刪除的方法詳解的文章就介紹到這了,更多相關(guān)Golang文件夾創(chuàng)建 刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go項(xiàng)目在linux服務(wù)器的部署詳細(xì)步驟

    Go項(xiàng)目在linux服務(wù)器的部署詳細(xì)步驟

    在今天的軟件開發(fā)中,使用Linux作為操作系統(tǒng)的比例越來越高,而Golang語言則因?yàn)槠涓咝?、簡潔和并發(fā)性能等特點(diǎn),也被越來越多的開發(fā)者所青睞,這篇文章主要給大家介紹了關(guān)于Go項(xiàng)目在linux服務(wù)器的部署詳細(xì)步驟,需要的朋友可以參考下
    2023-09-09
  • Golang算法之田忌賽馬問題實(shí)現(xiàn)方法分析

    Golang算法之田忌賽馬問題實(shí)現(xiàn)方法分析

    這篇文章主要介紹了Golang算法之田忌賽馬問題實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了基于Go語言的田忌賽馬問題原理與算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • golang 實(shí)現(xiàn)tcp server端和client端,并計(jì)算RTT時間操作

    golang 實(shí)現(xiàn)tcp server端和client端,并計(jì)算RTT時間操作

    這篇文章主要介紹了golang 實(shí)現(xiàn)tcp server端和client端,并計(jì)算RTT時間操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 基于Go和PHP語言實(shí)現(xiàn)爬樓梯算法的思路詳解

    基于Go和PHP語言實(shí)現(xiàn)爬樓梯算法的思路詳解

    這篇文章主要介紹了Go和PHP 實(shí)現(xiàn)爬樓梯算法,本文通過動態(tài)規(guī)劃和斐波那契數(shù)列兩種解決思路給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 淺析Golang中調(diào)度器的關(guān)鍵機(jī)制與性能

    淺析Golang中調(diào)度器的關(guān)鍵機(jī)制與性能

    Golang的調(diào)度器是其并發(fā)模型的核心組件,負(fù)責(zé)管理Goroutine的調(diào)度和執(zhí)行,本文將從理論和代碼層面分析Golang調(diào)度器的關(guān)鍵機(jī)制,感興趣的可以了解下
    2025-03-03
  • golang爬蟲colly?發(fā)送post請求

    golang爬蟲colly?發(fā)送post請求

    本文主要介紹了golang爬蟲colly?發(fā)送post請求實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 解讀rand.Seed(time.Now().UnixNano())的作用及說明

    解讀rand.Seed(time.Now().UnixNano())的作用及說明

    這篇文章主要介紹了關(guān)于rand.Seed(time.Now().UnixNano())的作用及說明,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • Golang測試框架goconvey進(jìn)行單元測試流程介紹

    Golang測試框架goconvey進(jìn)行單元測試流程介紹

    goconvey是一款針對Golang的測試框架,可以管理和運(yùn)行測試用例,同時提供了豐富的斷言函數(shù),并支持很多Web界面特性,這篇文章主要介紹了使用goconvey進(jìn)行單元測試流程,感興趣的同學(xué)可以參考下文
    2023-05-05
  • go語言中使用ent做關(guān)聯(lián)查詢的示例詳解

    go語言中使用ent做關(guān)聯(lián)查詢的示例詳解

    go語言的ent框架是facebook開源的ORM框架,是go語言開發(fā)中的常用框架,而關(guān)聯(lián)查詢又是日常開發(fā)中的常見數(shù)據(jù)庫操作,故文本給出一個使用ent做關(guān)聯(lián)查詢的使用示例,需要的朋友可以參考下
    2024-02-02
  • gRPC中攔截器的使用詳解

    gRPC中攔截器的使用詳解

    這篇文章主要介紹了gRPC中攔截器的使用詳解,本次主要介紹在gRPC中使用攔截器,包括一元攔截器和流式攔截器,在攔截器中添加JWT認(rèn)證,客戶端登錄之后會獲得token,請求特定的API時候需要帶上token才能訪問,需要的朋友可以參考下
    2023-10-10

最新評論

武冈市| 宝丰县| 颍上县| 柘城县| 文化| 逊克县| 盐城市| 佛山市| 岱山县| 乐都县| 扎兰屯市| 贵阳市| 科技| 剑阁县| 包头市| 芦溪县| 舒兰市| 衡山县| 北流市| 惠来县| 麦盖提县| 沅江市| 商城县| 奉贤区| 黑山县| 泊头市| 黑龙江省| 丰台区| 浑源县| 江门市| 定兴县| 博湖县| 新竹县| 隆回县| 南郑县| 刚察县| 拜泉县| 始兴县| 西安市| 昌江| 松滋市|