zoukankan      html  css  js  c++  java
  • tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径

    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

  • 相关阅读:
    Hibernate(2)——Hibernate的实现原理总结和对其模仿的demo
    Hibernate(1)——数据访问层的架构模式
    JVM学习(4)——全面总结Java的GC算法和回收机制
    JVM学习(3)——总结Java内存模型
    JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
    JVM学习(1)——通过实例总结Java虚拟机的运行机制
    减小内存的占用问题——享元模式和单例模式的对比分析
    继承、组合和接口用法——策略模式复习总结
    软件工程的引入:Scrum开发框架总结
    软件工程里的UML序列图的概念和总结
  • 原文地址:https://www.cnblogs.com/hfyfpga/p/4257770.html
Copyright © 2011-2022 走看看