作为一门编程语言,操作文件是必不可少的功能需求。
本文记录一些使用 Golang
语言操作文件的示例。
前排提示:有些API用到的 os
库函数,可能已经弃用,变更为 ioutil
gopackage main
import (
"fmt"
"os"
)
func main() {
// 创建单个文件夹
err := os.Mkdir("mydir", 0755)
if err != nil {
fmt.Println("Error creating directory:", err)
}
// 递归创建多层文件夹
err = os.MkdirAll("mydir/subdir/subsubdir", 0755)
if err != nil {
fmt.Println("Error creating directory:", err)
}
}
gopackage main
import (
"fmt"
"os"
)
func main() {
// 删除单个文件夹
err := os.Remove("mydir")
if err != nil {
fmt.Println("Error removing directory:", err)
}
// 递归删除文件夹及其所有子文件夹和文件
err = os.RemoveAll("mydir/subdir")
if err != nil {
fmt.Println("Error removing directory:", err)
}
}
gopackage main
import (
"fmt"
"os"
)
func main() {
// 检查文件夹是否存在
_, err := os.Stat("mydir")
if os.IsNotExist(err) {
fmt.Println("Directory does not exist.")
} else {
fmt.Println("Directory exists.")
}
}
gopackage main
import (
"fmt"
"os"
)
func main() {
// 要读取的文件夹路径
dirPath := "mydir"
// 打开文件夹
dir, err := os.Open(dirPath)
if err != nil {
fmt.Println("Error opening directory:", err)
return
}
defer dir.Close()
// 读取文件夹内部的文件和子文件夹列表
fileInfos, err := dir.Readdir(-1) // -1 表示读取文件夹内的所有内容
if err != nil {
fmt.Println("Error reading directory:", err)
return
}
// 遍历文件夹内的文件和子文件夹列表
fmt.Println("Files and subdirectories in", dirPath, ":")
for _, fileInfo := range fileInfos {
// 打印文件名或子文件夹名
fmt.Println(fileInfo.Name())
// 如果是子文件夹,则打印 " (Dir)" 标记
if fileInfo.IsDir() {
fmt.Println(" (Dir)")
}
}
}
Go语言提供了许多用于文件操作的标准库,主要包含在 os 和 io/ioutil 包中。以下是一些常见的文件相关操作:
os.Open(name string) (*File, error)
:打开指定名称的文件用于读取。os.Create(name string) (*File, error)
:创建或截断指定名称的文件用于写入。file.Close() error
:关闭文件。file.Read(b []byte) (n int, err error)
:从文件中读取数据到字节切片。file.Write(b []byte) (n int, err error)
:将字节切片写入文件。ioutil.ReadFile(filename string) ([]byte, error)
:读取整个文件的内容到字节切片。ioutil.WriteFile(filename string, data []byte, perm os.FileMode) error
:将字节切片写入文件。os.FileInfo
接口:提供了关于文件或文件夹的信息,如名称、大小、权限等。file.Stat() (FileInfo, error)
:返回文件信息。filepath.Join(elem ...string) string
:连接多个路径元素为一个路径。filepath.Abs(path string) (string, error)
:返回绝对路径。其他操作:
os.Chmod(name string, mode FileMode) error
os.Rename(oldpath, newpath string) error
file.Truncate(size int64) error
file.Chmod(mode FileMode) error
这些是Go语言中一些常用的文件操作函数和方法。您可以根据具体的需求使用这些函数和方法来进行文件的读取、写入、创建、删除等操作。
这里有几个最简单的示例。
gopackage main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
// 创建文件并写入内容
content := []byte("Hello, world!")
err = ioutil.WriteFile("mydir/myfile.txt", content, 0644)
if err != nil {
fmt.Println("Error writing file:", err)
return
}
// 读取文件内容并打印
data, err := ioutil.ReadFile("mydir/myfile.txt")
if err != nil {
fmt.Println("Error reading file:", err)
return
}
fmt.Println("File content:", string(data))
// 删除文件
err = os.Remove("mydir/myfile.txt")
if err != nil {
fmt.Println("Error removing file:", err)
return
}
fmt.Println("File operations completed successfully.")
}
建站因为热爱,生活需要Money,请屏幕前的大佬动动您发财的小手,点击一次以示鼓励,祝您生活愉快!
PS:就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本。
如果看不到广告,可能是网络原因或被拦截了,那就算了吧。再次祝您生活愉快~~
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!