Golang
档案操作
写web多少还是会遇到除了表单外,就是跟档案有关的行为了,这部分我自己都是习惯称为档案操作,在golang档案操作需要引用os 套件。
package main
import (
"fmt"
"os"
)
func main() {
os.Mkdir("demo", 0777)
//os.MkdirAll("demo /test1/test2", 0777)
err := os.Remove("demo ")
if err != nil {
fmt.Println(err)
}
//os.RemoveAll("demo ")
}
os.Mkdir 是建立资料夹,(名称 , 权限)
如果要直接建立更多层的方式则是使用os.MkdirAll
os.Remove是删除,但如果该资料夹内有东西,则不能使用os.Remove
而是需要改用os.RemoveAll
权限777,依序是指 owner/group/others这三者的权限 ,而数字代表的是要开放那些权限,read write exe,read =4 ,write = 2 ,exe = 1, 所以7 等於全开,如果是4就代表只开read的权限。
写档案
package main
import (
"fmt"
"os"
)
func main() {
userFile := "demo.txt"
fout, err := os.Create(userFile)
if err != nil {
fmt.Println(userFile, err)
return
}
defer fout.Close()
for i := 0; i < 10; i++ {
fout.WriteString("gogo test!\r\n")
}
}
读取档案的内容
package main
import (
"fmt"
"os"
)
func main() {
userFile := "demo.txt"
fout, err := os.Create(userFile)
if err != nil {
fmt.Println(userFile, err)
return
}
defer fout.Close()
for i := 0; i < 10; i++ {
fout.WriteString("gogo test!\r\n")
}
fl, err := os.Open(userFile)
if err != nil {
fmt.Println(userFile, err)
return
}
defer fl.Close()
buf := make([]byte, 1024)
for {
n, _ := fl.Read(buf)
if 0 == n {
break
}
os.Stdout.Write(buf[:n])
}
}
另外我还有看到os相关的语法
IsNotExist 、 IsPermission、Rename
当然Chdir、Chmod、Chown也都有相关的function可以使用。
>>: 【程序】我使用 Git 的心态转变 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 3
开始施工 本来是想分享自己参考网路作法再改写出来的 Transformer,但後来发现自己的架构并不...
我的开发环境是ubuntu20,但是部署环境是ubuntu18; 开发的语言是python,出现了一...
想想距离去年参加铁人也过了一年了,记得当时我才刚到职大概满半年吧,到现在也一年半了,我发生了哪些变化...
Youtube 频道:https://www.youtube.com/c/kaochenlong ...
买书 1-要写androidx.才可以用 2-Notofication要说到channel 2022...