在项目中,还样获我们可能会需要获取一个文件的文件大小,在Golang(Go语言)中,还样获有很多方法来获取一个文件的文件大小,看看你是还样获否还在用最慢的方式。 Read字节方式 第一种,文件是还样获最直观会想到的,也就是文件打开文件,把文件读取一遍。还样获 这种方式需要打开文件,通过for循环读取文件的还样获字节内容,然后算出文件的文件大小,这样时也是还样获最不能用的办法,因为效率低,文件代码量大。还样获 ioutil方式 上面的代码比较啰嗦,这时候我们可能想到了使用ioutil包的ReadFile来代替,直接获得文件的内容,进而计算出文件的大小。亿华云计算 通过ioutil.ReadFile函数,我们三行代码就可以搞定,的确方便很多,但是效率慢的问题依然,存在,如果是个很大的文件呢? Stat方法 继续再进一步,我们不读取文件的内容来计算了,我们通过文件的信息 这种方式不会再读取文件的内容,而是通过Stat方法直接获取,速度会非常快,尤其对于大文件尤其有用。但是它还不是我们今天要讲的终极办法,因为它还是会打开文件,会占用它。 终极方案 好了,我们的终极方案终于要登场了,他的代码也非常简单。 是高防服务器的,也只需要三行代码即可实现,这里使用的是os.Stat,通过他可以获得文件的元数据信息,现在我们看看它能获取到哪些信息。 获取文件信息 通过os.Stat方法,我们可以获取文件的信息,比如文件大小、名字等。 运行这段代码看下结果: 以上就是可以获取到的文件信息,还包括判断是否是目录,权限模式和修改时间。所以我们对于文件的信息获取要使用os.Stat函数,它可以在不打开文件的情况下,高效获取文件信息。 判断文件是否存在 os.Stat函数有两个返回值,一个是文件信息,一个是err,通过err我们可以判断文件是服务器托管否存在。 首先,err==nil的时候,文件肯定是存在的;其次err!=nil的时候也不代表不存在,这时候我们就需要进行严密的判断。 通过os.IsNotExist来判断一个文件不存在。最后else的可能性比较少,这个时候可以看下具体的错误是什么,再根据错误来判断文件是否存在。 小结 os.Stat是一个非常好的函数,可以让我们非常高效的获取文件信息,所以在项目中尽可能的使用它。
上一篇
下一篇