安全中国首页 > 编程中心 > VC/C++编程
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

C#使用WIN32API来遍历文件和目录[2]

更新时间:2008-7-7 10:43:35
责任编辑:ShellExp
热 点:
   private System.Collections.ArrayList myList = new System.Collections.ArrayList();
  
  }//public class FileDirectoryEnumerable : System.Collections.IEnumerable
  
  /// <summary>
  /// 文件和目录的遍历器
  /// </summary>
  /// <remarks>本对象为Win32API函数 FindFirstFile , FindNextFile
  /// 和 FindClose 的一个包装
  ///
  /// 以下代码演示使用了 FileDirectoryEnumerator
  ///
  /// FileDirectoryEnumerator e = new FileDirectoryEnumerator();
  /// e.SearchPath = @"c:\";
  /// e.Reset();
  /// e.ReturnStringType = true ;
  /// while (e.MoveNext())
  /// {
  /// System.Console.WriteLine
  /// ( e.LastAccessTime.ToString("yyyy-MM-dd HH:mm:ss")
  /// + " " + e.FileLength + " \t" + e.Name );
  /// }
  /// e.Close();
  /// System.Console.ReadLine();
  ///
  /// 编写 袁永福 ( http://www.xdesigner.cn )2006-12-8</remarks>
  public class FileDirectoryEnumerator : System.Collections.IEnumerator
  {
  
   #region 表示对象当前状态的数据和属性 **********************************
  
   /// <summary>
   /// 当前对象
   /// </summary>
   private object objCurrentObject = null;
  
   private bool bolIsEmpty = false;
   /// <summary>
   /// 该目录为空
   /// </summary>
   public bool IsEmpty
   {
   get { return bolIsEmpty; }
   }
   private int intSearchedCount = 0;
   /// <summary>
   /// 已找到的对象的个数
   /// </summary>
   public int SearchedCount
   {
   get { return intSearchedCount; }
   }
   private bool bolIsFile = true;
   /// <summary>
   /// 当前对象是否为文件,若为true则当前对象为文件,否则为目录
   /// </summary>
   public bool IsFile
   {
   get { return bolIsFile; }
   }
   private int intLastErrorCode = 0;
   /// <summary>
   /// 最后一次操作的Win32错误代码
   /// </summary>
   public int LastErrorCode
   {
   get { return intLastErrorCode; }
   }
   /// <summary>
   /// 当前对象的名称
   /// </summary>
   public string Name
   {
   get
   {
   if (this.objCurrentObject != null)
   {
   if (objCurrentObject is string)
   return (string)this.objCurrentObject;
   else
   return ((System.IO.FileSystemInfo)this.objCurrentObject).Name;
   }
   return null;
   }
   }
   /// <summary>
   /// 当前对象属性
   /// </summary>
   public System.IO.FileAttributes Attributes
   {
   get { return (System.IO.FileAttributes)myData.dwFileAttributes; }
   }
   /// <summary>
   /// 当前对象创建时间
   /// </summary>
   public System.DateTime CreationTime
   {
   get
   {
   long time = ToLong(myData.ftCreationTime_dwHighDateTime, myData.ftCreationTime_dwLowDateTime);
   System.DateTime dtm = System.DateTime.FromFileTimeUtc(time);
   return dtm.ToLocalTime();
   }
   }
   /// <summary>
   /// 当前对象最后访问时间
   /// </summary>
   public System.DateTime LastAccessTime
   {
   get
   {
   long time = ToLong(myData.ftLastAccessTime_dwHighDateTime, myData.ftLastAccessTime_dwLowDateTime);
   System.DateTime dtm = System.DateTime.FromFileTimeUtc(time);
   return dtm.ToLocalTime();
   }
   }
   /// <summary>
   /// 当前对象最后保存时间
   /// </summary>
   public System.DateTime LastWriteTime
   {
   get
   {
   long time = ToLong(myData.ftLastWriteTime_dwHighDateTime, myData.ftLastWriteTime_dwLowDateTime);
   System.DateTime dtm = System.DateTime.FromFileTimeUtc(time);
   return dtm.ToLocalTime();
   }
   }
   /// <summary>
   /// 当前文件长度,若为当前对象为文件则返回文件长度,若当前对象为目录则返回0
   /// </summary>
   public long FileLength
   {
   get
   {
   if (this.bolIsFile)
   return ToLong(myData.nFileSizeHigh, myData.nFileSizeLow);
   else
   return 0;
   }
   }
  
   #endregion

 
学习软件编程开发技术,推荐加入以下软件编程培训班:
易语言软件编程培训班(简单易学)  Delphi软件编程培训班  VC++软件编程培训班
VB软件编程培训班  JAVA高端编程就业研发班

学习网站开发制作技术,推荐加入以下网站开发培训班:
ASP.net网站开发项目实战班  ASP语言网站建设培训班

学习网络安全入侵防护技术,推荐加入以下技术培训班:
大型网络安全入侵防护班  网站脚本程序全方位安全检测班

学习网络管理、网吧运营维护技术(网管),推荐加入以下培训班:
大型网吧技术管理人才特训班  Linux网络嵌入架构工程师培训班

学习专项特殊技术,推荐加入以下专项技术培训班:
软件与游戏外挂脱壳破解班(逆向工程)  赚钱王道-网赚技能培训班  Flash动画设计师就业特训班

 
相关编程
一日一文章
 
一日一软件
一日一动画