首页导航栏 - 网络工程 | 网站建设 | 设计在线 | 精彩图片 | 职业前线 | 创业之路 | 启步工具 | 教程资讯 | 休闲娱乐
启步网 > 设计在线 > 程序设计
C#使用WIN32API来遍历文件和目录[2]
作者: 不详 阅读: 来源:互连网 时间:2007-1-4 13:14:58
字体

    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

责任编辑:一路狂奔
帐号:
密码:

Google
Google提供的相关资源
参与评论(条评论)
请遵守国家法律
笔名:
邮箱:
( 以上评论仅代表网友个人意见,不代表本站观点 )
相关资源
  • C#使用WIN32API来遍历文件和目录[5] [2007-1-4]
  • C#使用WIN32API来遍历文件和目录[4] [2007-1-4]
  • C#使用WIN32API来遍历文件和目录[3] [2007-1-4]
  • C#使用WIN32API来遍历文件和目录[1] [2007-1-4]
  •