C#实现的列出目录下所有子目录和文件的程序

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-02 05:28 点击:
     把自己的资料刻录成很多光盘,发现连自己都很难找到需要的文件在哪张光盘上,因此我就根据需求,在Visual Studio.NET中写了一个列出目录下所有子目录和文件的程序,以方便我列出刻录的资料光盘上的所有文件信息。
  
  本程序的主要算法是递归,主函数如下:
  
  //递归列出目录下的所有文件和子目录
  
   public void ListFiles( FileSystemInfo fileinfo )
  
   {
  
   if( ! fileinfo.Exists ) return;
  
   DirectoryInfo dirinfo = fileinfo as DirectoryInfo;
  
   if( dirinfo == null ) return; //不是目录
  
   indent++;//缩进加一
  
   FileSystemInfo [] files = dirinfo.GetFileSystemInfos();
  
   for( int i=0; i< i++)>遍历目录下所有文件、子目录
  
   {
  
   FileInfo file = files[i] as FileInfo;
  
   if( file != null ) // 是文件
  
   {
  
   this.richTextBox1.Text+=(WriteSpace(indent)+"|-"+
  
   file.Name + "t" + ConvertToKByte(file.Length)+"r" );
  
   }
  
   else //是目录
  
   {
  
   this.richTextBox1.Text+=(WriteSpace(indent)+"+"+files[i].FullName+"r");
  
   ListFiles( files[i] ); //对子目录进行递归调用
  
   }
  
   }
  
   indent--;//缩进减一
  
   }
  
  程序的设计界面如下图所示:
  
  控件有两个Button控件btnSelect和btnSave(分别用来选择目录和保存文件);一个RichTextBox控件(显示结果),一个folderBrowserDialog控件(选择目录)和一个saveFileDialog控件(选择保存文件路径)。
  
  程序运行后的界面如下图所示:
  
  
  
  
  
  程序的完整代码如下:(其中红色的是我自己添加的)
  
  using System;
  
  using System.Drawing;
  
  using System.Collections;
  
  using System.ComponentModel;
  
  using System.Windows.Forms;
  
  using System.Data;
  
  using System.Globalization;
  
  using System.IO;
  
  
  
  namespace ListFile_Windows
  
  {
  
   ///
  
   /// Form1 的摘要说明。
  
   ///
  
   public class Form1 : System.Windows.Forms.Form
  
   {
  
   private System.Windows.Forms.RichTextBox richTextBox1;
  
   public static int indent; //缩进值
 &n
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 用C#制作屏幕捕获程序
    • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
    • 遍历ArrayList易犯错误
    • C#对XML操作:一个处理XML文件的类(1)
    • .NET简谈反射(动态调用)
    • 使用C#编写LED样式时钟控件
    • DataList嵌套问题 如何删除内层子DataList的记录
    • 怎样用C#实现完整文档打印功能
    • .NET简谈自定义事务资源管理器
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1