返回顶部
首页 > 资讯 > 精选 >Go语言中怎么获取文件的大小
  • 678
分享到

Go语言中怎么获取文件的大小

2023-06-16 07:06:15 678人浏览 八月长安
摘要

本篇文章为大家展示了Go语言中怎么获取文件的大小,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Read字节方式第一种,是最直观会想到的,也就是打开文件,把文件读取一遍。func main(

本篇文章为大家展示了Go语言中怎么获取文件的大小,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Read字节方式

第一种,是最直观会想到的,也就是打开文件,把文件读取一遍。

func main() {     file,err:=os.Open("water")     if err ==nil {         sum := 0         buf:=make([]byte,2014)         for  {             n,err:=file.Read(buf)             sum+=n             if err==io.EOF {                 break             }         }         fmt.Println("file size is ",sum)     } }

这种方式需要打开文件,通过for循环读取文件的字节内容,然后算出文件的大小,这样时也是最不能用的办法,因为效率低,代码量大。

ioutil方式

上面的代码比较啰嗦,这时候我们可能想到了使用ioutil包的ReadFile来代替,直接获得文件的内容,进而计算出文件的大小。

func main() {     content,err:=ioutil.ReadFile("water")     if err == nil {         fmt.Println("file size is ",len(content))     } }

通过ioutil.ReadFile函数,我们三行代码就可以搞定,的确方便很多,但是效率慢的问题依然,存在,如果是个很大的文件呢?

Stat方法

继续再进一步,我们不读取文件的内容来计算了,我们通过文件的信息

func main() {     file,err:=os.Open("water")      if err == nil {         fi,_:=file.Stat()         fmt.Println("file size is ",fi.Size())     } }

这种方式不会再读取文件的内容,而是通过Stat方法直接获取,速度会非常快,尤其对于大文件尤其有用。但是它还不是我们今天要讲的终极办法,因为它还是会打开文件,会占用它。

终极方案

好了,我们的终极方案终于要登场了,他的代码也非常简单。

func main() {     fi,err:=os.Stat("water")     if err ==nil {         fmt.Println("file size is ",fi.Size(),err)     } }

是的,也只需要三行代码即可实现,这里使用的是os.Stat,通过他可以获得文件的元数据信息,现在我们看看它能获取到哪些信息。

获取文件信息

通过os.Stat方法,我们可以获取文件的信息,比如文件大小、名字等。

func main() {     fi,err:=os.Stat("water")     if err ==nil {         fmt.Println("name:",fi.Name())         fmt.Println("size:",fi.Size())         fmt.Println("is dir:",fi.IsDir())         fmt.Println("mode::",fi.Mode())         fmt.Println("modTime:",fi.ModTime())     } }

运行这段代码看下结果:

name: water size: 403 is dir: false mode:: -rw-r--r-- modTime: 2018-05-06 18:52:07 +0800 CST

以上就是可以获取到的文件信息,还包括判断是否是目录,权限模式和修改时间。所以我们对于文件的信息获取要使用os.Stat函数,它可以在不打开文件的情况下,高效获取文件信息。

判断文件是否存在

os.Stat函数有两个返回值,一个是文件信息,一个是err,通过err我们可以判断文件是否存在。

首先,err==nil的时候,文件肯定是存在的;其次err!=nil的时候也不代表不存在,这时候我们就需要进行严密的判断。

func main() {     _,err:=os.Stat(".")     if err ==nil {         fmt.Println("file exist")     }else if os.IsNotExist(err){         fmt.Println("file not exist")     }else{         fmt.Println(err)     } }

通过os.IsNotExist来判断一个文件不存在。最后else的可能性比较少,这个时候可以看下具体的错误是什么,再根据错误来判断文件是否存在。

上述内容就是Go语言中怎么获取文件的大小,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: Go语言中怎么获取文件的大小

本文链接: https://lsjlt.com/news/282819.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Go语言中怎么获取文件的大小
    本篇文章为大家展示了Go语言中怎么获取文件的大小,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Read字节方式第一种,是最直观会想到的,也就是打开文件,把文件读取一遍。func main(...
    99+
    2023-06-16
  • Linux 下C语言获取文件大小
    Linux 下C语言获取文件大小 C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在c语言中就比较麻烦,例如获取一个文件的大小。Java中File类有个length函数,Python中os.p...
    99+
    2022-06-04
    文件大小 语言 Linux
  • C++中怎么获取文件大小
    C++中怎么获取文件大小,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C++获取文件大小代码示例:#include < iostream>&...
    99+
    2023-06-17
  • Linux下C语言如何获取文件大小
    这篇文章给大家分享的是有关Linux下C语言如何获取文件大小的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux 下C语言获取文件大小C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在c语言中就...
    99+
    2023-06-09
  • java怎么获取文件大小
    目前Java获取文件大小的方法有两种:通过file的length()方法获取;通过流式方法获取;通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的available()方法和新的java..nio.*中的F...
    99+
    2016-09-27
    java基础 java
  • javascript怎么获取文件大小
    本篇内容主要讲解“javascript怎么获取文件大小”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript怎么获取文件大小”吧!方法:1、利用Ac...
    99+
    2024-04-02
  • nodejs怎么获取文件大小
    在Node.js中,可以使用`fs`模块的`stat`方法来获取文件的大小。`stat`方法返回一个包含文件信息的对象,其中包括`s...
    99+
    2023-08-15
    nodejs
  • java怎么获取文件实际大小
    在Java中,可以使用`File`类的`length()`方法来获取文件的实际大小,单位是字节。下面是一个示例代码:```javai...
    99+
    2023-08-16
    java
  • Linux中如何获取文件大小
    Linux中如何获取文件大小,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码实现:unsigned long get_file_size(const&nb...
    99+
    2023-06-17
  • C#中获取文件大小问题
    目录C# 获取文件大小C# 获取文件占用空间 (绝对准确)首先说下文件大小与占用空间的区别计算思路获取文件的实际大小后续总结C# 获取文件大小 直接贴代码吧         /// ...
    99+
    2023-02-26
    C#获取文件大小 C#文件大小 C#获取文件
  • C#中获取文件大小问题怎么解决
    本篇内容主要讲解“C#中获取文件大小问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中获取文件大小问题怎么解决”吧!C# 获取文件大小直接贴代码吧   ...
    99+
    2023-07-05
  • 怎么使用java file获取文件大小
    您可以使用`java.io.File`类的`length()`方法来获取文件的大小,该方法返回文件的字节数。下面是一个示例代码:``...
    99+
    2023-09-04
    java
  • Go语言获取文件的名称、前缀、后缀
    示例代码: package main import ( "fmt" "path" ) func main() { filename := "devic...
    99+
    2022-06-07
    GO go语言
  • r语言怎么获取数组中的最大值和最小值
    在R语言中,可以使用max()函数和min()函数来获取数组中的最大值和最小值。 例如,假设有一个包含一组数字的数组x,要获取该数组...
    99+
    2024-03-06
    r语言
  • shell如何获取文件大小
    这篇文章主要为大家展示了“shell如何获取文件大小”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“shell如何获取文件大小”这篇文章吧。获取文件大小stat&...
    99+
    2024-04-02
  • python如何获取文件大小
    Python中可以通过`os.path`模块中的`getsize()`函数来获取文件的大小。使用方法如下:```pythonimpo...
    99+
    2023-08-15
    python
  • 怎么用c语言获取文件MD5的值
    要使用C语言获取文件的MD5值,您可以使用以下步骤:1. 包含必要的头文件:```c#include #include #inclu...
    99+
    2023-08-15
    c语言
  • MyBatis在SQL语句中怎么获取list的大小
    这篇文章主要讲解了“MyBatis在SQL语句中怎么获取list的大小”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MyBatis在SQL语句中怎么获取list的大小”吧!MyBatis在S...
    99+
    2023-07-05
  • Python怎么获取视频文件的大小和时长
    这篇文章主要介绍“Python怎么获取视频文件的大小和时长”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么获取视频文件的大小和时长”文章能帮助大家解决问题。1. 前置知识这里一共需要用...
    99+
    2023-07-05
  • Go语言怎么使用buffer读取文件
    这篇文章主要讲解了“Go语言怎么使用buffer读取文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言怎么使用buffer读取文件”吧!buffer 是缓冲器的意思,Go语言要实现缓...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作