一、文件操作的基本API

func main() {
    //绝对路径
    fileInfo , err := os.Stat("E:/a.txt")
    fileInfo , err = os.Stat("E:/")
    if err !=nil {
        fmt.Println("err:" , err.Error())
    } else {
        fmt.Printf("%T \n" , fileInfo)
        fmt.Printf("%v \n" , fileInfo)
        //文件名
        fmt.Println(fileInfo.Name())
        //是否是目录
        fmt.Println(fileInfo.IsDir())
        //文件尺寸大小
        fmt.Println(fileInfo.Size())
        //mode 权限
        fmt.Println(fileInfo.Mode())
        //文件最后修改时间
        fmt.Println(fileInfo.ModTime())
    }
}

文件路径:

  • 1、绝对路径:absolute
  • 2、相对路径:relative 都是相当于当前的工程  (.当前目录   ..上一层)

(1)、判断是否是绝对路径filepath.IsAbs()
(2)、获取相对路径filepath.Rel()
(3)、获取绝对路径filepath.Abs()
(4)、拼接路径path.Join()

文件操作:
1.创建文件夹,如果文件夹存在,创建失败

  • os.MKdir()
  • os.MKdirAll()

2.创建文件:如果文件存在,会覆盖

  • os.Create()-->*file

3.打开文件:

  • os.Open(filename)
  • os.OpenFile(filename,mode,perm)

4.关闭文件:

  • file.Close()

5.删除:

  • os.Remove()
  • os.RemoveAll()
package main

import (
    "os"
    "fmt"
)

func main() {
    /*
    文件操作:
        1.创建文件夹,如果文件夹存在,创建失败
            os.MKdir()
            os.MKdirAll()

        2.创建文件:如果文件存在,会覆盖
            os.Create()-->*file

        3.打开文件:
            os.Open(filename)
            os.OpenFile(filename,mode,perm)
        4.关闭文件:
            file.Close()
        5.删除:
            os.Remove()
            os.RemoveAll()
     */
    //     1、创建目录
    fileName1 := "./test1"
    err := os.Mkdir(fileName1, os.ModePerm)
    if err != nil {
        fmt.Println("err:", err.Error())
    } else {
        fmt.Printf("%s 目录创建成功!\n", fileName1)
    }

    fileName2 := "./test2/abc/xyz"
    err = os.MkdirAll(fileName2, os.ModePerm)
    if err != nil {
        fmt.Println("err:", err.Error())
    } else {
        fmt.Printf("%s 目录创建成功!\n", fileName2)
    }

    //2、创建文件.如果文件已经存在,则文件被覆盖
    fileName3 := "./test1/abc.txt"
    file1, err := os.Create(fileName3)
    if err != nil {
        fmt.Println("err:", err.Error())
    } else {
        fmt.Printf("%s 创建成功!%v \n", fileName3, file1)
    }

    //    3、打开文件
    file2, err := os.Open(fileName3)
    if err != nil {
        fmt.Println("err:", err.Error())
    } else {
        fmt.Printf("%s 打开成功!%v \n", fileName3, file2)
    }

    /*
    第一个参数:文件名称
    第二个参数:文件的打开方式
        O_RDONLY:只读模式(read-only)
        O_WRONLY:只写模式(write-only)
        O_RDWR:读写模式(read-write)
        O_APPEND:追加模式(append)
        O_CREATE:文件不存在就创建(create a new file if none exists.)
    第三个参数:文件的权限:文件不存在创建文件,需要指定权限
     */
    fileName4 := "./test1/abc2.txt"
    file4, err := os.OpenFile(fileName4, os.O_RDWR|os.O_CREATE, os.ModePerm)
    if err != nil {
        fmt.Println("err:", err.Error())
    } else {
        fmt.Printf("%s 打开成功!%v \n", fileName4, file4)
    }

    //4、关闭文件,程序与文件的联系断开
    file4.Close()

    //    5、删除文件和目录
    fileName5 := "./test1"
    err = os.Remove(fileName5)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%s 删除成功!" , fileName5)
    }

    err = os.RemoveAll(fileName5)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%s 删除成功!" , fileName5)
    }
}
View Code

相关文章:

  • 2021-07-07
  • 2022-12-23
猜你喜欢
  • 2022-01-21
  • 2022-12-23
  • 2021-10-22
  • 2022-02-25
  • 2021-11-20
相关资源
相似解决方案