You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// flag 可取值:O_RDONLY// open the file read-only 以只读方式打开O_WRONLY// open the file write-only 以只写的方式打开O_RDWR// open the file read-write 以读写的方式打开O_APPEND// append data to the file 添加内容到文件,不能单独使用,需要在可写条件下O_CREATE// create a new file if none exists 如果文件不存在,则创建一个新文件O_EXCL// used with O_CREATE, file must not exist 和标志O_CREATE一起用,文件必须是不存在的O_SYNC// open for synchronous I/O 以同步I/O的方式打开O_TRUNC// if possible, truncate file when opened 在条件允许的情况下,打开文件时候清空文件内容
在写程序的时候,我们经常会遇到创建文件与目录,对文件(夹)编辑等操作,下面就这些操作做一个大致介绍并通过示例示范如何使用。
目录操作
文件目录操作的大多数函数都是在os包里面,下面列举了几个目录操作的:
创建目录,权限设置是perm,例如0777
创建目录,如果路径中有不存在的中间目录,则新建不存在的中间目录,从而尽量保证目录创建成功
删除文件或空目录
删除目录及目录下所有的子文件与目录
读取一个目录中文件列表
如果n > 0,则至多读取并返回n个文件信息
如果n <= 0,则读取所有的文件列表信息
下面是演示代码:
文件操作
一般文件操作包括:新建、打开、读写及删除。
文件操作很多情况下需要注意权限,默认使用unix文件权限模型。
新建与打开文件
新建文件可以通过如下两个方法:
func Create(name string) (file *File, err error)
根据文件名创建新的文件或者清空已存在文件,返回一个文件对象,默认权限是0666的文件,返回的文件对象是可读写的。
func NewFile(fd uintptr, name string) *File
根据文件描述符创建相应的文件,返回一个文件对象
通过如下两个方法来打开文件:
func Open(name string) (file *File, err error)
该方法以只读方式打开一个文件,内部实现其实调用了OpenFile。
func OpenFile(name string, flag int, perm uint32) (file *File, err error)
打开某一个文件,flag是打开的方式,只读、读写等,perm是权限。
写文件
写文件函数:
写入byte数组类型的信息到文件
在指定偏移位置off处开始写入byte数组类型的信息
写入字符串s到文件
写文件的示例代码
读文件
读文件函数:
读取数据到b中
从off开始读取数据到b中
读文件的示例代码:
删除文件
Go语言里面删除文件和删除文件夹是同一个函数,参见上面删除目录操作
检测文件或者目录是否存在
Golang默认没有一个检测路径是否存在的函数,但是可以用其它方式进行检测。示例:
小例子
读取一个目录,并递归列出所有文件
The text was updated successfully, but these errors were encountered: