操作示例:

./scan /Document/dir

代码:

// 定义递归文件树结构体
type treeList struct {
Path string `json:"path"`
File []string `json:"file"`
Children []*treeList `json:"children"`
} func main() {
// 获取命令行输入的参数
var dir string
arg_num := len(os.Args)
if arg_num < 2 {
fmt.Println("Waring:请输入路径的名称")
return
}
dir = os.Args[1] + "/" // 初始化tree结构体
treelist := new(treeList) // 递归文件目录下的所有文件
recursion(dir, treelist) // 将递归结构体转为json
bytes, _ := json.Marshal(treelist)
// fmt.Printf("%s",bytes)
fmt.Println(string(bytes))
} // 递归函数
func recursion(dir string, treelist *treeList) *treeList {
// 读取文件夹下的所有文件
files, err := ioutil.ReadDir(dir)
if err != nil {
fmt.Printf("Dir(%s) scan error,err:%v\n", dir, err)
} // 定义存放文件的切片
var fileSlice []string // 得到文件名次或文件夹名次
for _, f := range files {
filename := f.Name()
if f.IsDir() { // 如果是文件夹,则继续递归
fpath := dir + filename + "/"
children := recursion(fpath,new(treeList))
treelist.Children = append(treelist.Children,children)
} else{ // 如果是文件
fileSlice = append(fileSlice,filename)
}
} // 写入查找路径路径
treelist.Path = dir // 当前目录的文件给到 treelist.File
treelist.File = fileSlice return treelist
}

[Go] 递归获取目录下的文件的更多相关文章

  1. python递归获取目录下指定文件

    获取一个目录下所有指定格式的文件是实际生产中常见需求. import os #递归获取一个目录下所有的指定格式的文件 def get_jsonfile(path,file_list): dir_lis ...

  2. File类 递归 获取目录下所有文件文件夹

    package com.xiwi; import java.io.*; import java.util.*; class file{ public static void main(String a ...

  3. php递归获取目录下所有文件

    <?php function getFileList($dir){ $dir=iconv("utf-8","gb2312",$dir); if ($hea ...

  4. (实用篇)PHP不用递归遍历目录下所有文件的代码

    <?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ fu ...

  5. Java递归列出目录下全部文件

    Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...

  6. 取CPU序列号,获取网卡,取硬盘系列号,获取目录下的文件,强制删除目录

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  7. Python开发【笔记】:获取目录下所有文件

    获取文件 import os def sub_dirs(rdir): li = os.listdir(rdir) return li def main(rdir): content = sub_dir ...

  8. 阿里云OSS 获取目录下所有文件

    public class AliyunHandle { public static string accessKeyId = "a1uI5xxxxxxxxxrP4H"; publi ...

  9. Python递归遍历目录下所有文件

    #自定义函数: import ospath="D:\\Temp_del\\a"def gci (path): """this is a stateme ...

  10. Golang获取目录下的文件及目录信息

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() {  pwd,_ := os.Getwd() //获取当前目录  //获取文件或目录相关信息  fileInfoList ...

随机推荐

  1. Web _Servlet(url-pattern)的配置与优先级

    url-pattern的配置方式有三种: 1.完全路径匹配:以  '/'  开始 例: /ServletDemo1  , /aaa/ServletDemo2 , /aa/bb/ServletDemo3 ...

  2. 采用4-20mA电流的模拟量传输

    工业上常用的总线协议RS232,RS485等,都是传输数字信号的方式.工业上普遍需要测量各类非电物理量,例如温度.压力.速度.角度等,这些都需要转换成模拟量电信号才能传输到几百米外的控制室或显示设备上 ...

  3. Android Studio查看指定APP日志

    1.启动Android Studio 2.View->Tool Windows->Terminal   3.在底部输入monitor 4.Android Devices Monitor新窗 ...

  4. Day06 ServletContext

    ServletContext的介绍与用法 1.什么是ServletContext 1.1 SevrvletContext:Servlet上下文 服务器会为每一个Web工程创建一个ServletCont ...

  5. word多级标题自动编号设置

    1.选择段落 ->多级列表 ->定义新的多级列表 2.级别设置 ,这里操作比较繁琐,要多注意[输入编号的格式]要通过[包含的级别编号来自]这一项目来设定 标题1: 标题2 标题3: 标题4 ...

  6. docker学习随笔

    总结自https://zhuanlan.zhihu.com/p/187505981 Linux内核提供了Namespace技术来隔离PID/IPC/网络资源等,还提供了Control Group(cg ...

  7. insert-text-at-cursor-in-a-content-editable-div

    https://stackoverflow.com/questions/2920150/insert-text-at-cursor-in-a-content-editable-div function ...

  8. Command Injection-命令注入(命令执行)

    什么是命令注入? 命令注入是滥用应用程序的行为在操作系统上执行命令,使用与设备上的应用程序运行时相同的权限.例如,在作为名为joe的用户运行的web服务器上实现命令注入将在该joe用户下执行命令,从而 ...

  9. SublimeText实现Markdown快速预览

    SublimeText是什么? SublimeText是一个文本编辑器,同时也是一个先进的代码编辑器.SublimeText具有漂亮的用户界面和强大的功能,它的主要功能包括:拼写检查,书签,完整的Py ...

  10. Python练习--简单练习(一看就能写出来的代码)

    两数之和 数字的阶乘 求圆的面积 (输入半径,求解圆的面积) 求区间内所有素数的和 求前N个数字的平方和