golang判断文件是否存在
判断一个文件是否存在是一个相当常见的需求,在golang中也有多种方案实现这一功能。 现在我们介绍其中两种最常用也是最简单的实现,第一种将是跨平台通用的,而第二种则在POSIX平台上通用。 跨平台实现跨平台实现的思路很简单,如果某个文件不存在,那么使用 也许你注意到了有些代码会使用 那么来看看实现的代码: func FileExist(path string) bool { _,err := os.Lstat(path) return !os.IsNotExist(err) } 代码很简单,对于Windows/Linux/MacOS等是通用的,一般没有特殊需求我也比较推荐这种实现。 POSIX平台实现如果你的程序是面向POSIX平台的(例如UNIX、Linux等),那么还有一种更简单的方案——
通过使用 func FileExist(path string) bool { err := syscall.Access(path,syscall.F_OK) return !os.IsNotExist(err) } 这种实现的最大优势在于它简单而直观,但是它无法在Windows上使用。 一点提示当我们的 当我们对目标path中的某一部分没有可读权限时, 当文件不存在而你对文件所在的目录或者它的上层目录没有访问权限时, 所以重要的一点是在判断文件是否存在前应该先判断自己对文件及其路径是否有访问权限。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |