golang删除目录下所有文件
可以使用os包中的RemoveAll函数来删除目录下的所有文件和子目录。
示例代码:
package main
import (
"fmt"
"os"
)
func main() {
dir := "/path/to/directory"
err := removeAllFiles(dir)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("All files removed successfully.")
}
}
func removeAllFiles(dir string) error {
// 打开目录
d, err := os.Open(dir)
if err != nil {
return err
}
defer d.Close()
// 获取目录下所有文件和子目录
files, err := d.Readdir(-1)
if err != nil {
return err
}
// 遍历文件和子目录
for _, file := range files {
// 构建文件路径
path := dir + "/" + file.Name()
if file.IsDir() {
// 如果是子目录,递归删除
err = removeAllFiles(path)
if err != nil {
return err
}
} else {
// 如果是文件,删除
err = os.Remove(path)
if err != nil {
return err
}
}
}
// 删除目录
err = os.Remove(dir)
if err != nil {
return err
}
return nil
}
在上面的示例代码中,removeAllFiles函数接收一个目录路径作为参数,首先打开目录并获取其下所有文件和子目录,然后遍历这些文件和子目录,如果是子目录就递归调用removeAllFiles函数来删除子目录下的所有文件和子目录,如果是文件就直接删除。最后删除目录本身。注意,删除目录时必须先删除目录下的所有文件和子目录
原文地址: https://www.cveoy.top/t/topic/dbdZ 著作权归作者所有。请勿转载和采集!