這篇文章主要介紹了C#怎么使用dir命令實現(xiàn)文件搜索功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
以往,我都是使用 System.IO.Directory.GetDirectories() 和 System.IO.Directory.GetFiles() 方法遍歷目錄搜索文件。但實際的執(zhí)行效果始終差強人意,在檢索多種類型文件方面不夠強大,尤其是在檢索特殊文件夾或遇到權(quán)限不足時會引發(fā)程序異常。
這次為朋友寫了個檢索圖片的小程序,在仔細研究了 Process 以及 ProcessStartInfo 之后,決定利用這兩個類以及系統(tǒng)命令 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); // 如果僅搜索文件夾可以使用下面的參數(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); // 可以寫個自定義類 <T> // 然后利用 static <T> FromFile(string path) 的方式進行實例化 // 最后利用 List<T>.Add 的方法將其加入到 List 中以便后續(xù)處理 // * 數(shù)據(jù)量很大時慎用 } else { // 運行到此處則表示 dir 已執(zhí)行完畢 // 可以在此處添加對 output 的處理過程 // 也可以自定義完成事件并在此處觸發(fā)該事件, // 將 output 作為事件參數(shù)進行傳遞以便外部程序調(diào)用 } }; compiler.Start(); compiler.BeginOutputReadLine(); // 開始異步讀取 compiler.Close(); } }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“C#怎么使用dir命令實現(xiàn)文件搜索功能”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章標題:C#怎么使用dir命令實現(xiàn)文件搜索功能-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://chinadenli.net/article0/gcpoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、定制開發(fā)、自適應(yīng)網(wǎng)站、建站公司、網(wǎng)頁設(shè)計公司、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容