久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C#使用dir命令實現文件搜索功能示例

這篇文章主要介紹了C#使用dir命令實現文件搜索功能,結合具體實例形式分析了C#調用與使用cmd命令相關操作技巧,需要的朋友可以參考下

本文實例講述了C#使用dir命令實現文件搜索功能。分享給大家供大家參考,具體如下:

以往,我都是使用 System.IO.Directory.GetDirectories() 和 System.IO.Directory.GetFiles() 方法遍歷目錄搜索文件。但實際的執行效果始終差強人意,在檢索多種類型文件方面不夠強大,尤其是在檢索特殊文件夾或遇到權限不足時會引發程序異常。

這次為朋友寫了個檢索圖片的小程序,在仔細研究了 Process 以及 ProcessStartInfo 之后,決定利用這兩個類以及系統命令 dir 對文件進行檢索。


private void search()
{
  // 多種后綴可使用 exts 定義的方式
  var ext = "*.jpg";
  var exts = "*.jpg *.png *.gif";
  var folder = "D:\\";
  var output = new StringBuilder();
  if (System.IO.Directory.Exists(folder))
  {
    string path = System.IO.Path.Combine(folder, exts);
    string args = string.Format("/c dir \"{0}\" /b/l/s", path);
    // 如果僅搜索文件夾可以使用下面的參數組合
    // string args = string.Format("/c dir \"{0}\" /ad-s-h/b/l/s", folder);
    var compiler = new System.Diagnostics.Process();
    compiler.StartInfo.FileName = "cmd.exe";
    compiler.StartInfo.Arguments = args;
    compiler.StartInfo.CreateNoWindow = true;
    compiler.StartInfo.UseShellExecute = false;
    compiler.StartInfo.RedirectStandardOutput = true;
    compiler.OutputDataReceived += (obj, p) =>
    {
      // 根據 p.Data 是否為空判斷 dir 命令是否已執行完畢
      if (string.IsNullOrEmpty(p.Data) == false)
      {
        output.AppendLine(p.Data);
        // 可以寫個自定義類 <T>
        // 然后利用 static <T> FromFile(string path) 的方式進行實例化
        // 最后利用 List<T>.Add 的方法將其加入到 List 中以便后續處理
        // * 數據量很大時慎用
      }
      else
      {
        // 運行到此處則表示 dir 已執行完畢
        // 可以在此處添加對 output 的處理過程
        // 也可以自定義完成事件并在此處觸發該事件,
        // 將 output 作為事件參數進行傳遞以便外部程序調用
      }
    };
    compiler.Start();
    compiler.BeginOutputReadLine(); // 開始異步讀取
    compiler.Close();
  }
}

更多關于C#相關內容感興趣的讀者可查看本站專題:《C#文件操作常用技巧匯總》、《C#遍歷算法與技巧總結》、《C#程序設計之線程使用技巧總結》、《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數據結構與算法教程》及《C#面向對象程序設計入門教程》

希望本文所述對大家C#程序設計有所幫助。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了C# 將Access中以時間段條件查詢的數據添加到ListView中,需要的朋友可以參考下
這篇文章主要介紹了使用C#創建Windows服務的實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
這篇文章主要介紹了C#身份證識別相關技術詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家詳細介紹了C#中TCP粘包問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了C#實現的海盜分金算法,結合具體實例形式分析了海盜分金算法的原理與C#相應實現技巧,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了C#操作INI配置文件示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 国产第二页| 国产福利在线视频 | 欧美成人免费在线 | 久久另类| 亚洲免费精品 | 国产精品久久久久久久免费大片 | 久久久久久久久久久久91 | 国产成人99久久亚洲综合精品 | 成人在线播放网站 | 91短视频网址 | 四虎在线观看 | 精品国产一区久久 | 国产真实乱对白精彩久久小说 | 国产在线观看不卡一区二区三区 | 中文字幕一区二区三区不卡在线 | 第四色影音先锋 | 精品自拍视频 | 午夜成人在线视频 | 黄色毛片免费看 | 亚洲毛片 | 国产精品视频一二三区 | 色视频成人在线观看免 | 久久久.com| 91欧美激情一区二区三区成人 | av性色全交蜜桃成熟时 | 午夜av毛片| 一级a毛片| 日本精品视频在线观看 | 亚洲精品久久久久久久久久久久久 | 欧美在线观看一区 | 九九久久精品视频 | 精品乱码一区二区三四区 | 91精品国产综合久久小仙女图片 | 午夜精品一区二区三区免费视频 | 超碰3| 久久爆操 | 亚洲av一级毛片 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 久久人人网 | 亚洲第一av| 日韩精品免费在线 |