科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道C#使用WIN32API来遍历文件和目录 5

C#使用WIN32API来遍历文件和目录 5

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

/// /// 搜索下一个 /// /// 操作是否成功 ?? private bool SearchNext() { if (b

作者:中国IT实验室 来源:中国IT实验室 2007年9月10日

关键字: 使用 C# 编程

  • 评论
  • 分享微博
  • 分享邮件
  

  /// <summary>
   /// 搜索下一个
   /// </summary>
   /// <returns>操作是否成功</returns>
   private bool SearchNext()
   {
   if (bolStartSearchFlag == false)
   return false;
   if (bolIsEmpty)
   return false;
   if (intSearchHandler == INVALID_HANDLE_VALUE)
   return false;
   intLastErrorCode = 0 ;
   if (FindNextFile(intSearchHandler, ref myData) == false)
   {
   intLastErrorCode = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
   this.CloseHandler();
   if (intLastErrorCode != 0 && intLastErrorCode != 0x12)
   {
   if (this.bolThrowIOException)
   WinIOError(intLastErrorCode , strSearchPath);
   else
   return false;
   }
   return false;
   }
   return true;
   }//private bool SearchNext()
  
   /// <summary>
   /// 更新当前对象
   /// </summary>
   /// <returns>操作是否成功</returns>
   private bool UpdateCurrentObject()
   {
   if (intSearchHandler == INVALID_HANDLE_VALUE)
   return false;
   bool Result = false;
   this.objCurrentObject = null;
   if ((myData.dwFileAttributes & 0x10) == 0)
   {
   // 当前对象为文件
   this.bolIsFile = true;
   if (this.bolSearchForFile)
   Result = true;
   }
   else
   {
   // 当前对象为目录
   this.bolIsFile = false;
   if (this.bolSearchForDirectory)
   {
   if (myData.cFileName == "." || myData.cFileName == "..")
   Result = false;
   else
   Result = true;
   }
   }
   if (Result)
   {
   if (this.bolReturnStringType)
   this.objCurrentObject = myData.cFileName;
   else
   {
   string p = System.IO.Path.Combine(this.strSearchPath, myData.cFileName);
   if (this.bolIsFile)
   {
   this.objCurrentObject = new System.IO.FileInfo(p);
   }
   else
   {
   this.objCurrentObject = new System.IO.DirectoryInfo(p);
   }
   }
   this.intSearchedCount++;
   }
   return Result;
   }//private bool UpdateCurrentObject()
  
   #endregion
  
  }//public class FileDirectoryEnumerator : System.Collections.IEnumerator
  
  http://www.cnblogs.com/xdesigner/archive/2006/12/08/586177.html

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章