<strong id="riedb"><track id="riedb"></track></strong><em id="riedb"><acronym id="riedb"></acronym></em>
<tbody id="riedb"></tbody>
  • <em id="riedb"><acronym id="riedb"></acronym></em>
    <tbody id="riedb"></tbody>

  • <tbody id="riedb"><center id="riedb"></center></tbody>
  • 首頁 > 編程 > Golang > 正文

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

    2020-04-01 19:25:39
    字體:
    來源:轉載
    供稿:網友
    這篇文章主要介紹了Go語言編程中判斷文件是否存在是創建目錄的方法,示例都是使用os包下的函數,需要的朋友可以參考下
     

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

    復制代碼代碼如下:

      /*
     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()函數原形是func New(text string) error實例代碼
    復制代碼代碼如下:

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


    下面通過實例代碼講解一下
    復制代碼代碼如下:

      import (
     "fmt"
     "os"
    )

     

    func main() {
     _, err := os.Open("widuu.go")
     if err != nil {
      fmt.Println(os.IsNotExist(err)) //true  證明文件已經存在
      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()會報錯的
     }

    //我們弄出一個文件已經存在的錯誤來實驗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
     }
    }

     


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

    復制代碼代碼如下:

     import (
     "fmt"
     "os"
    )

     

    func main() {
     var path string
     if os.IsPathSeparator('//') {  //前邊的判斷是否是系統的分隔符
      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("創建目錄" + dir + path + "md成功")
    }


    os.MkdirAll()函數原形是func MkdirAll(path string, perm FileMode) error輸入的是多級目錄結構和權限返回的是error的信息
    復制代碼代碼如下:

    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("創建文件夾" + dir + "/a/b/c成功")
    }


    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    黄色片自拍视频网站在线观看不卡无码丨精品精品自在现拍国产2021丨亚洲三级片在线观看在线免费观看丨波多野结衣在线视频一区二区三区
    <strong id="riedb"><track id="riedb"></track></strong><em id="riedb"><acronym id="riedb"></acronym></em>
    <tbody id="riedb"></tbody>
  • <em id="riedb"><acronym id="riedb"></acronym></em>
    <tbody id="riedb"></tbody>

  • <tbody id="riedb"><center id="riedb"></center></tbody>