最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用dir命令實(shí)現(xiàn)文件搜索功能示例

 更新時(shí)間:2017年07月06日 10:28:53   作者:a771948524  
這篇文章主要介紹了C#使用dir命令實(shí)現(xiàn)文件搜索功能,結(jié)合具體實(shí)例形式分析了C#調(diào)用與使用cmd命令相關(guān)操作技巧,需要的朋友可以參考下

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

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

這次為朋友寫了個(gè)檢索圖片的小程序,在仔細(xì)研究了 Process 以及 ProcessStartInfo 之后,決定利用這兩個(gè)類以及系統(tǒng)命令 dir 對(duì)文件進(jìn)行檢索。

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);
    // 如果僅搜索文件夾可以使用下面的參數(shù)組合
    // 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) =>
    {
      // 根據(jù) p.Data 是否為空判斷 dir 命令是否已執(zhí)行完畢
      if (string.IsNullOrEmpty(p.Data) == false)
      {
        output.AppendLine(p.Data);
        // 可以寫個(gè)自定義類 <T>
        // 然后利用 static <T> FromFile(string path) 的方式進(jìn)行實(shí)例化
        // 最后利用 List<T>.Add 的方法將其加入到 List 中以便后續(xù)處理
        // * 數(shù)據(jù)量很大時(shí)慎用
      }
      else
      {
        // 運(yùn)行到此處則表示 dir 已執(zhí)行完畢
        // 可以在此處添加對(duì) output 的處理過程
        // 也可以自定義完成事件并在此處觸發(fā)該事件,
        // 將 output 作為事件參數(shù)進(jìn)行傳遞以便外部程序調(diào)用
      }
    };
    compiler.Start();
    compiler.BeginOutputReadLine(); // 開始異步讀取
    compiler.Close();
  }
}

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#文件操作常用技巧匯總》、《C#遍歷算法與技巧總結(jié)》、《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程

希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#基于Socket實(shí)現(xiàn)多人聊天功能

    C#基于Socket實(shí)現(xiàn)多人聊天功能

    這篇文章主要為大家詳細(xì)介紹了C#基于Socket實(shí)現(xiàn)多人聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • c#高效率導(dǎo)出多維表頭excel的實(shí)例代碼

    c#高效率導(dǎo)出多維表頭excel的實(shí)例代碼

    這篇文章介紹了c#高效率導(dǎo)出多維表頭excel的實(shí)例代碼,有需要的朋友可以參考一下
    2013-11-11
  • C#精確計(jì)算年齡的方法分析

    C#精確計(jì)算年齡的方法分析

    這篇文章主要介紹了C#精確計(jì)算年齡的方法,實(shí)例分析了C#計(jì)算時(shí)間的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C# 多線程處理List數(shù)據(jù)的示例代碼

    C# 多線程處理List數(shù)據(jù)的示例代碼

    這篇文章主要介紹了C# 多線程處理List數(shù)據(jù)的示例代碼,幫助大家更好的理解和使用c#編程語(yǔ)言,感興趣的朋友可以了解下
    2020-12-12
  • C#中常見的系統(tǒng)內(nèi)置委托用法詳解

    C#中常見的系統(tǒng)內(nèi)置委托用法詳解

    這篇文章主要介紹了C#中常見的系統(tǒng)內(nèi)置委托用法,主要包括了Action類的委托、Func類的委托、Predicate<T>委托、Comparison<T>委托等,需要的朋友可以參考下
    2014-09-09
  • C#定義簡(jiǎn)單的反射工廠實(shí)例分析

    C#定義簡(jiǎn)單的反射工廠實(shí)例分析

    這篇文章主要介紹了C#定義簡(jiǎn)單的反射工廠的用法,實(shí)例分析了反射工廠的原理與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#遞歸讀取XML菜單數(shù)據(jù)的方法

    C#遞歸讀取XML菜單數(shù)據(jù)的方法

    這篇文章主要介紹了C#遞歸讀取XML菜單數(shù)據(jù)的方法,涉及遞歸的操作技巧與C#窗體的用法,對(duì)于進(jìn)行C#項(xiàng)目開發(fā)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • 詳解C# wpf如何嵌入外部程序

    詳解C# wpf如何嵌入外部程序

    實(shí)現(xiàn)嵌入各種窗口控件后,其實(shí)還會(huì)有一種需求:嵌入外部程序,我們有時(shí)可能需要嵌入一個(gè)瀏覽器或者或者播放器等一些已有的程序,下面我們就來看看具體操作吧
    2024-04-04
  • C#?SQLite庫(kù)使用技巧

    C#?SQLite庫(kù)使用技巧

    SQLite是一個(gè)開源、免費(fèi)的小型RDBMS(關(guān)系型數(shù)據(jù)庫(kù)),能獨(dú)立運(yùn)行、無服務(wù)器、零配置、支持事物,用C實(shí)現(xiàn),內(nèi)存占用較小,支持絕大數(shù)的SQL92標(biāo)準(zhǔn)。下面跟隨小編一起看下C#?SQLite庫(kù)使用
    2022-01-01
  • 介紹C# 泛型類在使用中約束

    介紹C# 泛型類在使用中約束

    這篇文章介紹了C# 泛型類在使用中約束,有需要的朋友可以參考一下
    2013-09-09

最新評(píng)論

子长县| 秭归县| 马公市| 禄劝| 平凉市| 三亚市| 东阳市| 苗栗市| 绵竹市| 拜泉县| 小金县| 广德县| 新安县| 比如县| 静宁县| 灵武市| 平利县| 平乡县| 土默特右旗| 昌图县| 阿拉善左旗| 邵阳县| 措勤县| 汪清县| 额尔古纳市| 大石桥市| 江西省| 万安县| 麟游县| 平江县| 福鼎市| 无为县| 通辽市| 阿拉善盟| 太和县| 紫阳县| 贵溪市| 宕昌县| 天门市| 北京市| 泸州市|