go递归打印指定目录下的所有文件及文件夹

func treedir(fpath string){
    // 获取fileinfo
    if finfo,err := os.Stat(fpath); err == nil {
        // 判断是不是目录 如果不是目录而是文件  打印文件path并跳出递归
        if !finfo.IsDir() {
            fmt.Println(fpath)
            return
        }else{
            // 是目录的情况 打印目录path
            fmt.Println(fpath)
            f,_ := os.Open(fpath) // 通过目录path open一个file
            defer f.Close()
            names,_ := f.Readdirnames(0)  // 通过file的Readdirnames 拿到当前目录下的所有filename
            for _,name := range names{
                newpath := path.Join(fpath,name) // 遍历names 拼接新的fpath
                treedir(newpath)  // 递归
            }
        }
    }
}

原文地址:https://www.cnblogs.com/endurance9/p/10348827.html

时间: 2024-07-29 12:25:32

go递归打印指定目录下的所有文件及文件夹的相关文章

【C#】递归搜索指定目录下的指定项目(文件或目录)

先别急着喷,请听我解释. 诚然可以使用现成的Directory类下的GetFiles.GetDirectories.GetFileSystemEntries这几个方法实现同样的功能,但请相信我不是蛋疼,原因是这几个方法在遇上[System Volume Information]这种目录时,极有可能会给你个拒绝访问的异常,想跳过都不行.所以没办法,重新实现了一下. 实现说明: - 仍然是基于对Directory类的几个方法的封装进行实现,只是没有使用它们的searchPattern和searchO

php递归查找指定目录下及子文件名称是否包含中文空格及括号

1 //php递归查找该目录下及子文件名称是否包含中文空格括号 2 function searchDir($path,&$data){ 3 if(is_dir($path)){ 4 $dp=dir($path); 5 while($file=$dp->read()){ 6 if($file!='.'&& $file!='..'){ 7 searchDir($path.'/'.$file,$data); 8 } 9 } 10 $dp->close(); 11 } 12 i

JAVA输出指定目录下的子目录和子文件

题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数组 循环遍历输出这个数组元素 输出名称之后,接着判断这个元素是文件还是目录 如果是目录,继续调用本方法来输出子目录 代码如下: /** * 输出指定目录下的所有子目录和子文件 * * @author DXY * */ public class HelloFile { public static vo

Shell脚本递归打印指定目录中所有目录文件

#!/bin/bash #递归打印当前目录下的所有目录文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$line ] && { DIR="$1/$line" echo $DIR } DIR1=`dirname $DIR` #求路径. A=`ls -F $DIR1 | grep / | grep "\<$line\>"` #判断line是不是一个目录.

递归遍历指定目录下所有指定的文件并删除

有一台电脑中毒,几乎每个文件夹下都复制了几个文件,用win7自带的索引搜索出近6万个文件,想全选删除直接死机.没办法,用批处理. 核心语句如下: @echo off for /f "delims=" %%i in ('dir /s /b Recovery+*') do ( del /s /q %%i) 说明: dir /s 表示递归查找,/b 只显示目录和文件名,如果不加会显示时间等信息,"Recovery+*"是病毒产生的文件名的一部分,以这个开头的有几个,所以用

个人笔记:PHP递归删除指定目录下的文件和目录

function DelDir($path){ //给定的目录不是一个文件夹 if(!is_dir($path)){ return null; } // 1 打开目录 $dir =opendir($path); // 去除. 和.. while ($filename =readdir($dir)) { if ($filename =='.' || $filename == '..') { continue; } // 拼接完整路径,不拼接会到当前路径下找 $filepath =$path.'/'

shell练习-对指定目录下的符合条件的文件执行操作

编写个shell脚本将当前目录下大于10K的文件,然后删除 #!/bin/bash #author: liqilong #date: 2016-08-26 #Decs: find the file (if they more than 10K)and remove them . for Filename in `ls -l|awk '$5 > 10240 {print $9}'` do rm -rf $Filename done echo "OK!"

Scala 获取指定目录下的所有文件名(不包括目录名)

最近在学习Scala,想要获取指定目录下的所有文件名,但是Scala  中有没有相应的库函数,由于本人是新手,所以弄了半天,好不容易才将网上的一段Scala 递归获取指定目录下所有目录的代码改成获取文件名,特在此备忘,也希望高手指点. 下面是一段递归获取目录名称的代码: def subdirs(dir: File): Iterator[File] = { val children = dir.listFiles.filter(_.isDirectory) children.toIterator

c# 获取指定目录下的所有文件并显示在网页上

参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).aspx 网页表格的生成  http://www.w3school.com.cn/html/html_tables.asp C# 通过文件扩展名获取图标和描述 http://www.csframework.com/archive/2/arc-2-20110514-1478.htm   http://ww