こんにちは、kurumi-bioです。
第10回目のosパッケージ(標準ライブラリー)の学習です。
環境
Remove関数
func Remove(name string) error
◆テストコード
package main
import (
"fmt"
"os"
)
func rm(fileName string) {
e := os.Remove(fileName)
if e != nil {
fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Remove", e))
return
}
fmt.Printf("[%s] Remove Success\n", fileName)
}
func main() {
const Name = "test"
SubPath := fmt.Sprintf("%s/sub", Name)
rm(Name)
os.Mkdir(Name, 0750)
rm(Name)
os.MkdirAll(SubPath, 0750)
rm(Name)
rm(SubPath)
rm(Name)
}
◆実行結果(Windows)
RemoveAll関数
func RemoveAll(path string) error
◆テストコード
package main
import (
"fmt"
"os"
)
func rma(fileName string) {
e := os.RemoveAll(fileName)
if e != nil {
fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Remove", e))
return
}
fmt.Printf("[%s] Remove Success\n", fileName)
}
func main() {
const Name = "test"
SubPath := fmt.Sprintf("%s/sub", Name)
rma(Name)
os.Mkdir(Name, 0750)
rma(Name)
os.MkdirAll(SubPath, 0750)
rma(Name)
}
◆実行結果(Windows)
広告の下に続きます。
Rename関数
func Rename(oldpath, newpath string) error
◆テストコード
package main
import (
"fmt"
"os"
)
func rf(filename string) {
b, e := os.ReadFile(filename)
if e != nil {
fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.ReadFile", e))
return
}
fmt.Printf("%s [%s]\n", filename, b)
}
func rn(oldpath, newpath string) {
e := os.Rename(oldpath, newpath)
if e != nil {
fmt.Fprintf(os.Stderr, "%s\n", os.NewSyscallError("os.Rename", e))
return
}
fmt.Println("Rename Success")
}
func main() {
rn("non", "non2")
fmt.Println("----------")
rf("test-old")
rn("test-old", "test-new")
rf("test-new")
fmt.Println("----------")
rf("test-new2")
rn("test-new", "test-new2")
rf("test-new2")
fmt.Println("----------")
rn("test-new2", "test-dir")
fmt.Println("----------")
rn("test-new2", "c:\\test-new")
rn("test-new2", "d:\\test-new")
fmt.Println("----------")
}
◆実行結果(Windows)
SameFile関数
func SameFile(fi1, fi2 FileInfo) bool
◆テストコード
package main
import (
"fmt"
"io/fs"
"os"
)
func fi(name string) fs.FileInfo {
fi, e := os.Stat(name)
if e != nil {
fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Stat", e))
os.Exit(1)
}
return fi
}
func sf(name1, name2 string) {
fi1 := fi(name1)
fi2 := fi(name2)
b := os.SameFile(fi1, fi2)
if b == true {
fmt.Printf("[%s] = [%s]\n", name1, name2)
} else {
fmt.Printf("[%s] != [%s]\n", name1, name2)
}
}
func main() {
sf("same", "same")
sf("same", "s-link")
sf("same", "h-link")
sf("same", "same1")
}
◆実行結果(Windows)
最後までご覧いただきありがとうございます