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 |