Golang 如何检查一个文件是否存在

Golang 如何检查一个文件是否存在

为了检查某个文件是否存在于Golang的指定目录中,我们可以使用Go标准库中 os 包提供的 Stat()isNotExists() 函数。

Stat() 函数是用来返回描述文件的文件信息结构的。让我们首先只使用 Stat() 函数,看看它是否足以在 Go 中检测出一个文件的存在 。

例子1

考虑一下下面的代码。

package main
import(
   "fmt"
   "os"
)
func main() {
   if _, err := os.Stat("sample.txt"); err == nil {
      fmt.Printf("File exists\n");
   } else {
      fmt.Printf("File does not exist\n");
   }
}
Go

在上面的代码中,我们试图在 os.Stat() 函数的帮助下找到一个名为 sample.txt 的文件的存在,然后如果我们没有遇到错误,我们将得到打印到终端的第一个 Printf() 语句。

输出

如果我们使用命令 go run main.go 来运行上述代码,那么我们将在终端得到以下输出。

File exists
Go

上面的方法很好用,但是有一个问题。可能是这样,从 Stat() 函数返回的b err 可能是由于权限错误或磁盘故障,因此建议在使用 os.Stat() 函数的同时也使用 isNotExists(err) 函数。

例2

考虑一下下面的代码。

package main
import(
   "fmt"
   "os"
)
func main() {
   if fileExists("sample.txt") {
      fmt.Println("sample file exists")
   } else {
      fmt.Println("sample file does not exist")
   }
}
func fileExists(filename string) bool {
   info, err := os.Stat(filename)
   if os.IsNotExist(err) {
      return false
   }
   return !info.IsDir()
}
Go

输出

如果我们使用 go run main.go 来运行上述代码,那么我们将在终端得到以下输出。

File exists
Go

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册