Go 語言程式檢查檔案是否具有可讀許可權


在使用 Go 語言處理檔案時,檢查檔案是否具有可讀許可權非常重要,因為如果沒有讀許可權,程式就無法讀取檔案內容。在這裡,我們將使用 os.Stat() 函式、os.Open() 函式以及 ioutil.Readfile() 函式來檢查檔案是否具有可讀許可權。

演算法

  • 首先,我們需要匯入 "fmt" 和 "os" 包。

  • 然後,將文字檔案儲存到變數中,並呼叫相應包中指定的函式。

  • 如果生成錯誤,則在螢幕上列印錯誤資訊。

  • 否則,使用 fmt.Println() 函式列印檔案具有可讀許可權。

語法

os.Stat PATH

stat() 函式位於 os 包中,用於解析相對於專案根目錄的路徑。該函式接受一個引數,即檔案長度以及檔案儲存的路徑。

示例 1

在 Go 中檢查檔案是否具有可讀許可權的第一種方法是使用 os.Stat() 函式。此函式返回一個 FileInfo 型別的值,該值描述了檔案。要檢查檔案是否具有可讀許可權,我們可以使用 FileInfo.Mode() 方法並檢查返回值是否包含 os.ModePerm 常量。

package main

import (
   "fmt"
   "os"
)

func main() {
   file := "file.txt"
   info, err := os.Stat(file)
   if err != nil {
      fmt.Printf("error getting file info: %v", err)
      return
   }
   if info.Mode().Perm()&0444 == 0444 {
      fmt.Println("file has readable permission")
   } else {
      fmt.Println("file does not have readable permission")
   }
}

輸出

file has readable permission

示例 2

在 Go 中檢查檔案是否具有可讀許可權的另一種方法是使用 os.Open() 函式。os.Open() 函式以檔名作為引數,並返回一個 *File 型別的值,該值表示一個開啟的檔案。如果檔案沒有可讀許可權,則該函式將返回一個錯誤。要檢查檔案是否具有可讀許可權,我們只需呼叫 os.Open() 並檢查返回的錯誤是否為 nil。

package main

import (
   "fmt"
   "os"
)

func main() {
   file := "file.txt"
   _, err := os.Open(file)
   if err != nil {
      fmt.Println("file does not have readable permission")
   } else {
      fmt.Println("file has readable permission")
   }
}

輸出

file does not have readable permission

示例 3

在 Go 中檢查檔案是否具有可讀許可權的第三種方法是使用 ioutil.ReadFile() 函式。ioutil.ReadFile() 函式以檔名作為引數,並返回檔案內容作為 []byte 型別的值。如果檔案沒有可讀許可權,則該函式將返回一個錯誤。要檢查檔案是否具有可讀許可權,我們只需呼叫 ioutil.ReadFile() 並檢查返回的錯誤是否為 nil。

package main

import (
   "fmt"
   "io/ioutil"
)

func main() {
   file := "file.txt"
   _, err := ioutil.ReadFile(file)
   if err != nil {
      fmt.Println("file does not have readable permission")
   } else {
      fmt.Println("file has readable permission")
   }
}

輸出

file does not have readable permission

結論

我們已成功編譯並執行了一個 Go 語言程式,以檢查檔案是否具有可讀許可權。我們在這裡實現了三個程式。在第一個程式中,我們使用 os 包中的 Stat() 函式,而在第二個和第三個程式中,我們分別使用 os 和 ioutil 包中的 Open() 和 readFile() 函式。

更新時間: 2023年5月3日

1K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.