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

Go語言編程中判斷文件是否存在是創(chuàng)建目錄的方法

 更新時間:2015年10月27日 17:53:09   投稿:goldensun  
這篇文章主要介紹了Go語言編程中判斷文件是否存在是創(chuàng)建目錄的方法,示例都是使用os包下的函數(shù),需要的朋友可以參考下

判斷文件是否存在
os.IsExists()函數(shù)和os.IsNotExists(),他們的函數(shù)的原形是func IsExist(err error) bool func IsNotExist(err error) bool 都是傳入一個err返回bool 這里注意了 err已經(jīng)定義好了

復(fù)制代碼 代碼如下:

  /*
 var (
     ErrInvalid    = errors.New("invalid argument")
     ErrPermission = errors.New("permission denied")
     ErrExist      = errors.New("file already exists")
     ErrNotExist   = errors.New("file does not exist")
 )
*/

這里我們看到了errors這個包,那我們講一下這個包,這個包就一個方法就是errors.New()函數(shù)原形是func New(text string) error實例代碼
復(fù)制代碼 代碼如下:

import (
 "errors"
 "fmt"
)

func main() {
 //這里就一個方法func New(text string) error 我們可以自己定義
 err := errors.New("widuu blog only golang")
 if err != nil {
  fmt.Println(err) //這里就是輸出了我們自己定義的錯誤信息 //widuu blog only golang
 }
}


下面通過實例代碼講解一下
復(fù)制代碼 代碼如下:

  import (
 "fmt"
 "os"
)

func main() {
 _, err := os.Open("widuu.go")
 if err != nil {
  fmt.Println(os.IsNotExist(err)) //true  證明文件已經(jīng)存在
  fmt.Println(err)                //open widuu.go: no such file or directory
 }

 //這個時候你可以這樣判斷文件是否存在

 f, err := os.Open("widuu.go")
 if err != nil && os.IsNotExist(err) {
  fmt.Println(f, "文件不存在") //為什么打印nil 是這樣的如果file不存在 返回f文件的指針是nil的 所以我們不能使用defer f.Close()會報錯的
 }

//我們弄出一個文件已經(jīng)存在的錯誤來實驗os.IsExists() 如下是Os定義的常量
 /*
  var (
      ErrInvalid    = errors.New("invalid argument")
      ErrPermission = errors.New("permission denied")
      ErrExist      = errors.New("file already exists")
      ErrNotExist   = errors.New("file does not exist")
  )
 */
 fmt.Println(os.IsExist(os.ErrExist)) //這里就會輸出true
 //我們后邊馬上提到link
 err = os.Link("osexists.go", "1.go")
 if err != nil {
  fmt.Println(os.IsExist(err))  //因為我1.go這個文件存在了 所以說返回true
 }
}


創(chuàng)建目錄
os.Mkdir創(chuàng)建單個目錄函數(shù)原形func Mkdir(name string, perm FileMode) error輸入一個目錄的名稱和目錄的權(quán)限,我們可以用默認的os.ModePerm然后返回的是一個error的信息,我們看下,也一塊復(fù)習(xí)前邊的一點知識

復(fù)制代碼 代碼如下:

 import (
 "fmt"
 "os"
)

func main() {
 var path string
 if os.IsPathSeparator('\\') {  //前邊的判斷是否是系統(tǒng)的分隔符
  path = "\\"
 } else {
  path = "/"
 }
 fmt.Println(path)
 dir, _ := os.Getwd()  //當前的目錄
 err := os.Mkdir(dir+path+"md", os.ModePerm)  //在當前目錄下生成md目錄
 if err != nil {
  fmt.Println(err)
 }
 fmt.Println("創(chuàng)建目錄" + dir + path + "md成功")
}


os.MkdirAll()函數(shù)原形是func MkdirAll(path string, perm FileMode) error輸入的是多級目錄結(jié)構(gòu)和權(quán)限返回的是error的信息
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 dir, _ := os.Getwd()
 err := os.MkdirAll(dir+"/a/b/c", os.ModePerm)  //生成多級目錄
 if err != nil {
  fmt.Println(err)
 }
 fmt.Println("創(chuàng)建文件夾" + dir + "/a/b/c成功")
}

相關(guān)文章

  • 淺析golang的依賴注入

    淺析golang的依賴注入

    這篇文章主要介紹了淺析golang的依賴注入,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 使用go自定義prometheus的exporter

    使用go自定義prometheus的exporter

    在prometheus中如果要監(jiān)控服務(wù)器和應(yīng)用的各種指標,需要用各種各樣的exporter服務(wù),這篇文章主要介紹了使用go自定義prometheus的exporter,需要的朋友可以參考下
    2023-03-03
  • Go語言的http/2服務(wù)器功能及客戶端使用

    Go語言的http/2服務(wù)器功能及客戶端使用

    Golang 有一個很棒的自帶 http 服務(wù)器軟件包,不用說就是: net/http, 它非常簡單,但是功能非常強大。下面這篇文章主要給大家介紹了關(guān)于Go語言的http/2服務(wù)器功能及客戶端使用的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • 使用Go初始化Struct的方法詳解

    使用Go初始化Struct的方法詳解

    面向?qū)ο缶幊陶Z言最基礎(chǔ)的概念就是類(class),不過Go語言并沒有類的概念,所以使用Go語言開發(fā)時,我們一般會用struct(結(jié)構(gòu)體)來模擬面向?qū)ο笾械念?下面我們來介紹幾種創(chuàng)建struct類型變量的方法,需要的朋友可以參考下
    2024-01-01
  • Go Gin框架中的binding驗證器使用小結(jié)

    Go Gin框架中的binding驗證器使用小結(jié)

    Gin框架中的binding驗證器為我們提供了簡便的數(shù)據(jù)綁定和驗證功能,通過合理使用binding和validate標簽,我們可以確保API接口的數(shù)據(jù)合法性和完整性,這篇文章主要介紹了Go Gin框架中的binding驗證器使用指南,需要的朋友可以參考下
    2024-07-07
  • Go語言defer語句的三種機制整理

    Go語言defer語句的三種機制整理

    在本篇文章里小編給大家分享的是一篇關(guān)于Go語言defer語句的三種機制整理,需要的朋友們學(xué)習(xí)下吧。
    2020-03-03
  • Golang學(xué)習(xí)筆記(三):控制流

    Golang學(xué)習(xí)筆記(三):控制流

    這篇文章主要介紹了Golang學(xué)習(xí)筆記(三):控制流,本文講解了IF、FOR、SWITCH、goto、break、continue等控制流語句的使用實例,需要的朋友可以參考下
    2015-05-05
  • Golang控制協(xié)程執(zhí)行順序方法詳解

    Golang控制協(xié)程執(zhí)行順序方法詳解

    這篇文章主要介紹了Golang控制協(xié)程執(zhí)行順序的方法,Golang的語法和運行時直接內(nèi)置了對并發(fā)的支持。Golang里的并發(fā)指的是能讓某個函數(shù)獨立于其他函數(shù)運行的能力
    2022-11-11
  • Golang正整數(shù)指定規(guī)則排序算法問題分析

    Golang正整數(shù)指定規(guī)則排序算法問題分析

    這篇文章主要介紹了Golang正整數(shù)指定規(guī)則排序算法問題,結(jié)合實例形式分析了Go語言排序算法操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • CentOS7使用yum安裝Golang的超詳細步驟

    CentOS7使用yum安裝Golang的超詳細步驟

    CentOS默認并沒有安裝golang運行環(huán)境,下面這篇文章主要給大家介紹了關(guān)于CentOS7使用yum安裝Golang的超詳細步驟,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02

最新評論

兴义市| 泗洪县| 年辖:市辖区| 松溪县| 德化县| 原平市| 织金县| 平潭县| 屯昌县| 齐齐哈尔市| 舒兰市| 新河县| 濉溪县| 阿拉尔市| 临清市| 乐平市| 定陶县| 惠来县| 通化市| 如东县| 福泉市| 公安县| 四川省| 漯河市| 托克逊县| 建宁县| 育儿| 东山县| 泾阳县| SHOW| 恩施市| 祁阳县| 永丰县| 织金县| 临夏县| 五大连池市| 平塘县| 华亭县| 绥芬河市| 江西省| 江孜县|