線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2229
推到 Plurk!
推到 Facebook!

如何列出硬碟中所有exe檔的檔案路徑呢?

尚未結案
chance
一般會員


發表:19
回覆:9
積分:5
註冊:2003-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-16 02:45:38 IP:211.78.xxx.xxx 未訂閱
有一個問題困擾小弟許久……小弟想寫一支程式,讓它可自動列出硬碟中所有exe檔的檔案路徑,小弟看過貴版上有關這類型的資料,但是似乎沒有符合小弟需求的東西,還請各位大大不吝指教,謝謝!!
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-16 03:00:35 IP:163.13.xxx.xxx 未訂閱
Hi, chance 您好:     這幾天 RaynorPao 版主大大才剛發表一個搜尋的程式,包含原始碼     http://delphi.ktop.com.tw/topic.php?topic_id=44866 你去看這個畫面,那你搜尋 *.exe 後,再把得到的資訊進行一次字串 處理,把右邊算來的第一個 \ 之後的字都截掉,就可取得路徑了。給您 參考,也感謝包子大大的分享。    ========================
我要努力向上
========================
chance
一般會員


發表:19
回覆:9
積分:5
註冊:2003-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-16 13:29:00 IP:211.78.xxx.xxx 未訂閱
很感謝azurecloud大大的建議,但是小弟目前最困擾的是小弟想要讓這支程式可以透過一顆button自動搜尋出硬碟中所有的exe檔案與它的路徑(如C:\.......D:\.......E:\.......)。而不要再透過選擇路徑的方式,這也是小弟目前最頭痛的地方。還請各位大大不吝指教!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-16 14:04:11 IP:203.73.xxx.xxx 未訂閱
引言: 很感謝azurecloud大大的建議,但是小弟目前最困擾的是小弟想要讓這支程式可以透過一顆button自動搜尋出硬碟中所有的exe檔案與它的路徑(如C:\.......D:\.......E:\.......)。而不要再透過選擇路徑的方式,這也是小弟目前最頭痛的地方。還請各位大大不吝指教!
chance 你好: 只要配合上迴圈的應用,應該很快就可以達到目的了 < class="code"> #include "Masks.hpp" void __fastcall TForm1::SearchFiles(AnsiString szDir, AnsiString szFile) { TSearchRec SearchRec; int iAttr=faAnyFile; int iFound=0; if(!DirectoryExists(szDir)) { return; } if(szDir.SubString(szDir.Length(), 1)!="\\") { szDir=szDir+"\\"; } Application->ProcessMessages(); iFound=FindFirst(szDir+"*.*", iAttr, SearchRec); while(iFound==0) { if(SearchRec.Attr==faDirectory) { if((SearchRec.Name!=".") && (SearchRec.Name!="..")) { SearchFiles(szDir+SearchRec.Name, szFile); } } else { if(MatchesMask(SearchRec.Name, szFile)) { Memo1->Lines->Add(szDir+SearchRec.Name); } } iFound=FindNext(SearchRec); } FindClose(SearchRec); } void __fastcall TForm1::Button2Click(TObject *Sender) { char szDrive[1024]={0}; char *szTemp=NULL; TStringList *sl=new TStringList; if(GetLogicalDriveStrings(1024, szDrive)) { szTemp=szDrive; while(*szTemp!='\0') { if(DirectoryExists((AnsiString)szTemp)) { sl->Add((AnsiString)szTemp); } szTemp+=4; } } for(int i=0; iCount; i++) { if(Trim(sl->Strings[i])!="") { SearchFiles(sl->Strings[i], "*.exe"); } } delete sl; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
chance
一般會員


發表:19
回覆:9
積分:5
註冊:2003-08-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-17 00:47:20 IP:211.78.xxx.xxx 未訂閱
謝謝上面RaynorPao大大的指導……小弟花了一個晚上的時間…總算了解RaynorPao你的程式… 但是小弟仍然有一個問題……(Sorry..)那就是我們在偵測的過程中,無法跳過A:\巢的偵測,如果在A巢中沒有磁片的話,使用者還是要去按取消鍵………有沒有什麼辦法可以跳過A:\巢的偵測呢~
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-17 08:59:30 IP:203.73.xxx.xxx 未訂閱
引言: 謝謝上面RaynorPao大大的指導……小弟花了一個晚上的時間…總算了解RaynorPao你的程式… 但是小弟仍然有一個問題……(Sorry..)那就是我們在偵測的過程中,無法跳過A:\巢的偵測,如果在A巢中沒有磁片的話,使用者還是要去按取消鍵………有沒有什麼辦法可以跳過A:\巢的偵測呢~
chance 你好:
疑?奇怪~~我試過的電腦都不會發生你所說的問題,因為以下這一行程式碼
<>    >,建議你多換幾台電腦試試好嗎?

備註:
測試環境  src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --    發表人 - RaynorPao 於 2004/02/17  09:13:22
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-11-23 9:54:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!