go 递归读取目录中所有文件和目录 读取当前目录的文件和目录

 基础语法  2023-06-30  admin  1107  1494

递归读取目录中所有文件和目录

// ReadDirAll 递归读取目录中所有文件和目录
func ReadDirAll(path string) ([]string, error) {
	var files []string
	err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		if !info.IsDir() {
			files = append(files, path)
		}
		return nil
	})
	if err != nil {
		return nil, err
	}
	return files, nil
}

只读取当前目录的文件和目录

// ReadDirCurrent 只读取当前目录的文件和目录
func ReadDirCurrent(path string) ([]string, []string, error) {
    var files, dirs []string
    dir, err := os.Open(path)
    if err != nil {
       return nil, nil, err
    }
    defer dir.Close()

    fileInfos, err := dir.Readdir(0)
    if err != nil {
       return nil, nil, err
    }

    for _, fileInfo := range fileInfos {
       if fileInfo.IsDir() {
          dirs = append(dirs, fileInfo.Name())
       } else {
          files = append(dirs, fileInfo.Name())
       }
    }

    return files, dirs, nil
}


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

相关推荐


AI人脸替换工具离线版V6.0 最新版下载

AI人脸替换工具离线版V6.0 最新版下载下载 解压 双击运行roop_rope_facefusion_V60.exe 文件即可下载链接:https://pan.quark.cn/s/be7953632126AI人脸替换工具离线版V6.0

Systemd Web 管理系统:简化服务管理

# Systemd Web Systemd Web 是一个 Systemd 的 Web UI 管理系统,通过直观的界面和易用的操作,让用户能够轻松地管理 Linux 系统和服务。该项目旨在简化 Systemd 的使用,使得无论是专业的系统管理员还是普通的用户,都能够方便地对系统进行操作。 ## [github地址] (https://github.com/topascend/systemd

laravel 自定义写入日志

laravel 自定义写入日志if(!function_exists('myLog')){ /** *生成自定义文件日志内容 *@param$data *@paramstring$title *@parambool$isClear *@returnvoid *@Author:cent123.com */ functionmyLog($data,string$tit

systemctl 使用

Systemd是Linux系统工具,用来启动守护进程,已成为大多数发行版的标准配置。而systemctl是Systemd的主命令,用于管理系统。其实我们大部分服务都有使用systemctl管理,比如MySQL、Nginx等等。常见配置如下:[Unit] #单元描述 Description=GFAPP #在什么服务启动之后再执行本程序 After=mysql.service [Serv