Dalam golang, anda boleh menggunakan fungsi Remove() atau RemoveAll() terbina dalam dalam pakej os untuk memadam fail, sintaksnya ialah "os.Remove(path)" atau "os.RemoveAll(path )". Apabila memadam fail, tidak terdapat banyak perbezaan antara kaedah RemoveAll() dan Remove() tetapi apabila memadamkan direktori, Remove() hanya boleh memadam direktori kosong, manakala RemoveAll() boleh memadamkannya tanpa sebarang sekatan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Di golang, hampir semua operasi fail seperti pemadaman fail, penciptaan fail, pembacaan fail dan penulisan fail diselesaikan melalui pakej os. Jadi jika anda ingin menguruskan fail di Golang, anda perlu menggunakan pakej os terbina dalam Golang.
Untuk memadamkan fail dalam Golang, gunakan fungsi os.Remove() atau os.RemoveAll(). Fungsi os.Remove() dan os.RemoveAll() ialah fungsi Golang terbina dalam untuk memadamkan fail. Sediakan laluan fail ke fail, yang boleh dipadamkan. Ia memadam fail bernama atau direktori (kosong).
Fungsi RemoveAll digunakan sama seperti Remove. Perbezaannya ialah ia akan memadam semua subdirektori dan fail secara rekursif. Hari ini kita akan melihat perbezaan khusus antara keduanya.
Alih keluar fail
os.Remove()
Seterusnya, kami menggunakan os Kaedah Remove() memadamkan fail kerana kita perlu menggunakan kod untuk mengesahkannya Sebelum memadam, kita perlu mencipta fail test.txt dan kemudian memadamnya. Berikut ialah kod khusus:
package main import ( "os" "fmt" ) func main () { testFile := "test.txt" _, err := os.Create(testFile) //创建文件 if err != nil { fmt.Println("文件创建失败") } // 使用 os.Remove() 删除文件 err = os.Remove(testFile) if err != nil { fmt.Println("删除失败") } else { fmt.Println("删除成功") } }
os.RemoveAll()
Baiklah, melalui contoh di atas, kita dapat melihat os.Remove ( ) kaedah masih sangat mudah untuk memadam fail. Jadi, mari kita lihat prestasi os.RemoveAll() Ia masih sama seperti sebelum ini. Kod yang diubah suai adalah seperti berikut:
package main import ( "os" "fmt" ) func main () { testFile := "test.txt" _, err := os.Create(testFile) //创建文件 if err != nil { fmt.Println("文件创建失败") } // 使用 os.RemoveAll() 删除文件 err = os.RemoveAll(testFile) if err != nil { fmt.Println("删除失败") } else { fmt.Println("删除成功") } }
Hasil pelaksanaan kod:
Padam direktori
os.Remove()
Apakah kesan penggunaan os.Remove() untuk memadamkan direktori? Seterusnya, lihat terus pada kod!
Contoh kod:
package main import ( "os" "fmt" ) func main () { testDir := "d1/d2/d3" // 创建多级目录 err := os.MkdirAll(testDir, os.ModePerm) if err != nil { fmt.Println("文件创建失败", err) } // 使用 os.Remove() 删除文件 err = os.Remove(testDir) if err != nil { fmt.Println("删除失败", err) } else { fmt.Println("删除成功") } }
Hasil pelaksanaan kod:
os.RemoveAll()
Jadi, apakah kesan pemadaman direktori menggunakan kaedah os.RemoveAll()? Mari lihat kodnya juga!
Kod contoh:
package main import ( "os" "fmt" ) func main () { testDir := "d1/d2/d3" // 创建多级目录 err := os.MkdirAll(testDir, os.ModePerm) if err != nil { fmt.Println("文件创建失败", err) } // 使用 os.RemoveAll() 删除文件 err = os.RemoveAll(testDir) if err != nil { fmt.Println("删除失败") } else { fmt.Println("删除成功") } }
Hasil pelaksanaan kod:
Sekarang kita dapati bahawa apabila memadam direktori, kedua-dua kaedah mempunyai kesan yang sama, adakah tiada perbezaan antara keduanya? Jawapannya tidak. Masih menggunakan kod pemadaman direktori di atas, apakah hasilnya jika kita memadam direktori d2 dan bukannya direktori d3?
Selepas mengubah suai kod, akhirnya kami mendapati bahawa tiada masalah dengan kaedah os.RemoveAll(), tetapi os.Remove() melaporkan ralat Mesej ralat adalah seperti berikut:
remove d1/d2/: directory not empty
Ya, direktori d2 Ia tidak kosong, kerana terdapat juga subdirektori d3 Pada ketika ini, kami akhirnya menemui perbezaan antara os.RemoveAll() dan os.Remove().
Nota:
Tiada banyak perbezaan antara kaedah os.RemoveAll() dan os.Remove() apabila memadam fail. Walau bagaimanapun, apabila memadamkan direktori, os.Remove() hanya boleh memadamkan direktori kosong, manakala os.RemoveAll() boleh memadamkannya tanpa sebarang sekatan.
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Bagaimana untuk memadam fail dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!