老男孩IT教育,只培养技术精英

全国免费咨询电话:400-609-2893
Go语言文件创建 golang周末学习 老男孩培训

    /    2019-04-17

更多内容可关注公众号:Go程序员开发

os包提供了操作系统函数的不依赖平台的接口。设计为Unix风格的,虽然错误处理是go风格的;失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。

创建目录

创建目录操作常用函数:

func Getwd() (dir string, err error)    

Getwd返回一个对应当前工作目录的根路径。如果当前目录可以经过多条路径抵达(因为硬链接),Getwd会返回其中一个。

func Mkdir(name string, perm FileMode) error 

Mkdir使用指定的权限和名称创建一个目录。如果出错,会返回*PathError底层类型的错误。

func IsExist(err error) bool

返回一个布尔值说明该错误是否表示一个文件或目录已经存在。ErrExist和一些系统调用错误会使它返回真。 

func IsNotExist(err error) bool  

返回一个布尔值说明该错误是否表示一个文件或目录不存在。ErrNotExist和一些系统调用错误会使它返回真。

func MkdirAll(path string, perm FileMode) error

MkdirAll使用指定的权限和名称创建一个目录,包括任何必要的上级目录,并返回nil,否则返回错误。权限位perm会应用在每一个被本函数创建的目录上。如果path指定了一个已经存在的目录,MkdirAll不做任何操作并返回nil。

func Rename(oldpath, newpath string) error 

Rename修改一个文件的名字,移动一个文件。可能会有一些个操作系统特定的限制。

代码实现:

package main

import (
    "fmt"
    "os"
)

func main() {
    path, err := os.Getwd()
    if err != nil {
        fmt.Printf("get path err : %v\n", err)
    }
    fmt.Printf("当前目录 : %v\n", path)

    err = os.Mkdir("./oldboy", 0777)
    if err != nil {
        fmt.Printf("mkdir oldboy err : %v\n", err)
        if os.IsExist(err) {
            fmt.Println("文件已存在!")
        }
        if os.IsNotExist(err) {
            fmt.Println("文件不存在!")
        }
    }

    err = os.MkdirAll("./oldboy/go", 0777)
    if err != nil {
        fmt.Println("mkdirall err : %v\n", err)
    }

    err = os.Rename("./oldboy/go", "./oldboy/golang")
    if err != nil {
        fmt.Printf("rename err : %v\n", err)
    }
}

创建文件

创建文件操作常用函数和方法:

func Create(name string) (file *File, err error)

Create采用模式0666(任何人都可读写,不可执行)创建一个名为name的文件,如果文件已存在会截断它(为空文件)。如果成功,返回的文件对象可用于I/O;对应的文件描述符具有O_RDWR模式。如果出错,错误底层类型是*PathError。

func NewFile(fd uintptr, name string) *File

NewFile使用给出的Unix文件描述符和名称创建一个文件。

func (f *File) Close() error

Close关闭文件f,使文件不能用于读写。它返回可能出现的错误。

func (f *File) Name() string

Name方法返回(提供给Open/Create等方法的)文件名称。

func (f *File) Stat() (fi FileInfo, err error)

Stat返回描述文件f的FileInfo类型值。如果出错,错误底层类型是*PathError。

func SameFile(fi1, fi2 FileInfo) bool

<span style="margin: 0px; padding: 0px; max-width: 100%; color: rgb(89, 89, 89); letter-spacing: 0.5px;

(2)

分享至