先使用 ioutil.ReadDir 遍历出指定目录下的文件,再递归进辩梁目录中遍历,问题的关键在于识别出悔滑文件为目录, fs.FileInfo 中有一个 IsDir() 函数可以识别是否是目录
正则匹配使用 regexp.MatchString ,regexp中有很多正则 *** 作的工具,如根据正则替换字符串中的指定字符
我清楚的记得在我读研二的时候有一次我帮老师收“海外名师课堂”的作业,有一名巴基斯坦的学生,想要老师的课件,我当时给他说这个不被允许,随便给外国留学生拷贝课件原则上是不允许的,我是这样认为的。但是他说这个是经过了我们老师的同意,听到这我就给他拷贝了课件,不然好像显得我们巴铁关系也不怎么铁,一个课件都不拷贝。但是同时他希望我能给他提供课件的目录概览信息,他当时说的英文,但是我听出来了,并想都没想就回答:“OK,I’ll send you later.”
回到教研室,我就开始琢磨这个事儿,因为课件很大,目录很深,并且内容也是非常多的。靠人为梳理目录关系肯定是不行的,我就想起来以前用过的 tree 命令,在网上搜罗了一下,还真的有类似的功能样例,可以直接输出指定目录的递归文件概览详情。
二话不说,先看命令:
<pre class="custom" data-tool="mdnice编辑器" style="margin-top: 10pxmargin-bottom: 10pxborder-radius: 5pxbox-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px">`# 切换至目标目录, /d是切换盘符的意思
cd /d W:\Google_Download
tree /f >W:\tree.txt` </pre>
不过说真的,Windows的cmd命令真是恶心极了,难道就不能向Linux一样,直接 cd 吗!还非得加个 /d 参数。
命令执行如下:
执行结果如图所示:
从上图来看,我们完整的拿到了目标目录 W:\Google_Download 的文件递归详情。
如果你也有类似的需求,那么这个 命令对你会非常有帮助!省时省力~
Linux tree命嫌颂令用于以树状图列出目录的内容。
执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
<pre class="custom" data-tool="mdnice编辑器" style="margin-top: 10pxmargin-bottom: 10pxborder-radius: 5pxbox-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px">-a 显示所有文件和目录。 -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。 -C 在文件和目录清单加上色彩,便于区分各种类型。 -d 显示目录悉燃名称而非内容。 -D 列出文件或目录的更改时芹陆郑间。 -f 在每个文件或目录之前,显示完整的相对路径名称。 -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。 -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。 -i 不以阶梯状列出文件或目录名称。 -L level 限制目录显示层级。 -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。 -n 不在文件和目录清单加上色彩。 -N 直接列出文件和目录名称,包括控制字符。 -p 列出权限标示。 -P<范本样式>只显示符合范本样式的文件或目录名称。 -q 用"?"号取代控制字符,列出文件和目录名称。 -s 列出文件或目录大小。 -t 用文件和目录的更改时间排序。 -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。 -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。 </pre>
使用 tree 命令如下,经过我的使用,好像Windows OS不完全支持 tree 命令!
不过在某些情况下, tree 命令还是能够帮我们解决一些问题的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)