tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径
2015-01-29 08:28
3019 查看
http://blog.csdn.net/dulixin/article/details/2133840
#所有代码如下,使用注释的方式讲解脚本
#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tcl解释器运行
#脚本目的:返回一个文件夹下所有的文件的绝对路径
#主要讲述和操作的命令cd、pwd、glob
#次要命令:file、open、catch
#脚本思想:使用递归返回所有的文件路径,可以遍历到所有的子文件夹
#脚本以在window目录下为例,需要在其它系统下请修改路径名
#需要返回文件路径的文件夹,需要注意在windows下路径名用/间隔,tcl语言中用/间隔
set dirpath "D:/Script.NET/V2"
#进入文件夹中
cd $dirpath
pwd
#结果保存在文件中,此处以windows系统下为例
set resultfile "C:/result.txt"
#打开保存结果的文件
#catch用于捕捉发生的错误,使脚本不会应为错误而中断,脚本中捕捉到错误会使用exit退出
#result变量存储打开的结果文件I/O通道ID
if { [catch {set result [open $resultfile w+]} err] } {
puts $err
exit
}
#用于返回文件路径名的过程
#myDir需要返回文件路径的文件夹名
#result为保存结果的文件I/O通道ID
proc FindFile { myDir result } {
#进入目录
if {[catch {cd $myDir} err]} {
puts $result $err
return
}
#遍历目录中所有文件和文件夹
#如果是文件夹则递归调用FindFile过程
#如果是文件直接把路径记录到结果文件中
foreach myfile [glob -nocomplain *] {
#进入递归后有可能修改当前的目录,
#因为file命令只能对当前路径有效果,
#所以需要保证在正确的目录下操作文件
cd $myDir
#如果文件夹是空的,则会返回空,不记录文件夹
if {[string equal $myfile ""]} {
return
}
set fullfile [file join $myDir $myfile]
#判断是文件夹还是文件
#如果是文件夹则递归调用FindFile过程
#如果是文件直接把路径记录到结果文件中
if {[file isdirectory $myfile]} {
puts $result $fullfile
FindFile $fullfile $result
} else {
puts $result $fullfile
}
}
}
#执行脚本命令,返回结果
FindFile $dirpath $result
#关闭保存结果的文件I/O通道
close $result
#所有代码如下,使用注释的方式讲解脚本
#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tcl解释器运行
#脚本目的:返回一个文件夹下所有的文件的绝对路径
#主要讲述和操作的命令cd、pwd、glob
#次要命令:file、open、catch
#脚本思想:使用递归返回所有的文件路径,可以遍历到所有的子文件夹
#脚本以在window目录下为例,需要在其它系统下请修改路径名
#需要返回文件路径的文件夹,需要注意在windows下路径名用/间隔,tcl语言中用/间隔
set dirpath "D:/Script.NET/V2"
#进入文件夹中
cd $dirpath
pwd
#结果保存在文件中,此处以windows系统下为例
set resultfile "C:/result.txt"
#打开保存结果的文件
#catch用于捕捉发生的错误,使脚本不会应为错误而中断,脚本中捕捉到错误会使用exit退出
#result变量存储打开的结果文件I/O通道ID
if { [catch {set result [open $resultfile w+]} err] } {
puts $err
exit
}
#用于返回文件路径名的过程
#myDir需要返回文件路径的文件夹名
#result为保存结果的文件I/O通道ID
proc FindFile { myDir result } {
#进入目录
if {[catch {cd $myDir} err]} {
puts $result $err
return
}
#遍历目录中所有文件和文件夹
#如果是文件夹则递归调用FindFile过程
#如果是文件直接把路径记录到结果文件中
foreach myfile [glob -nocomplain *] {
#进入递归后有可能修改当前的目录,
#因为file命令只能对当前路径有效果,
#所以需要保证在正确的目录下操作文件
cd $myDir
#如果文件夹是空的,则会返回空,不记录文件夹
if {[string equal $myfile ""]} {
return
}
set fullfile [file join $myDir $myfile]
#判断是文件夹还是文件
#如果是文件夹则递归调用FindFile过程
#如果是文件直接把路径记录到结果文件中
if {[file isdirectory $myfile]} {
puts $result $fullfile
FindFile $fullfile $result
} else {
puts $result $fullfile
}
}
}
#执行脚本命令,返回结果
FindFile $dirpath $result
#关闭保存结果的文件I/O通道
close $result
相关文章推荐
- tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径
- tcl/tk实例详解——修改目录下所有文件(使用一个字符串代替另外一个)
- tcl/tk实例详解——修改目录下所有文件(使用一个字符串代替另外一个)
- 详解shell 遍历文件夹内所有文件并打印绝对路径
- C#控制台基础 directory获取一个文件夹中所有文件的绝对路径(不包括文件夹)
- JAVA 一个简单的文件写入代码(遍历文件夹获取所有文件、写入缓冲池、获取文件绝对路径、按后缀名过滤文件)
- C#控制台基础 directory获取一个文件夹中所有文件及文件夹的绝对路径
- 从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.txt文件名(后缀名文件)
- 使用linux命令获取文件夹下所有文件的绝对路径
- 键盘录入两个文件路径,将其中一个文件夹中的所有的文件复制到另一个文件中
- python如何获取一个文件夹内包括子文件夹所有文件的名字和路径
- JAVA 获取某个盘符下所有文件夹及其文件路径,并返回标准JSON字符串
- 读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组 -- 基于node的一个函数
- php--------删除一个路径下的所有文件夹和文件
- 递归的一些方法使用:深度遍历路径中的所有文件和目录,删除一个有文件的文件夹
- 文件、文件路径(path)详解及文件夹下所有文件获取方法介绍
- VBS遍历文件或文件夹路径输入文件的所有绝对路径(附源码)
- 用JAVA扫描指定文件夹下面所有以.txt结尾的文件,并将其绝对路径输出 .
- 用JAVA扫描指定文件夹下面所有以.txt结尾的文件,并将其绝对路径输出
- php--------删除一个路径下的所有文件夹和文件