檔案搜尋不會進入每個子目錄?! |
答題得分者是:sryang
|
moko
一般會員 發表:31 回覆:34 積分:13 註冊:2002-09-20 發送簡訊給我 |
請教各位先進:
以下程式碼是我在書上參考到的,我運用了之後發現
要搜尋某的磁碟機下面所有符合sfile.text內名稱的文字檔
可是磁碟機底下有的目錄它有進入搜尋,有的卻不會,導致明明有這個檔案
但我搜尋不到,請高手幫忙指點一下,感恩~~
<textarea class="delphi" rows="10" cols="60" name="code">
procedure TFORM1.GETMYFILE(SOURCEPATH: string);
var SR: TSEARCHREC; D: string;
begin
Sourcepath := IncludeTrailingBackslash(Sourcepath);
if FINDFIRST(sourcepath '\*.*', faanyfile, sr) = 0 then begin
repeat
if (sr.name <> '.') and (sr.name <> '..') then begin
if sr.attr <> faDirectory then begin
MEMO1.LINES.ADD(sourcepath sr.name);
if UpperCase(SR.NAME) = sfile.Text then begin
Memo1.Lines.Add(sourcepath sr.name);
D := 'C:\MARK\DATA\' sfile.text;
CopyFile(PCHAR(sourcepath sr.name), PCHAR(D), FALSE);
end;
end else begin
getmyfile(sourcepath sr.name);
end;
end;
until findnext(sr) <> 0;
end;
findclose(sr); end;
</textarea>
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
關鍵在於 if sr.attr <> faDirectory then 這一行
TSearchRec.Attr 不能用 = 來比對。因為各種檔案或目錄屬性是會相加的 目錄 faDirectory = 16 (00010000),隱藏 faHidden = 2 (00000010) 所以「隱藏目錄」= 18 (00010010) 應該改用 if (sr.attr and faDirectory) <> faDirectory then 來比較
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
moko
一般會員 發表:31 回覆:34 積分:13 註冊:2002-09-20 發送簡訊給我 |
呼 今天在搜尋相關問題的時候有看到這樣的說明哩
但沒看懂,現在已經了解了! 謝謝sryang! 感恩! ===================引 用 sryang 文 章=================== 關鍵在於 if?sr.attr?<>?faDirectory?then 這一行 TSearchRec.Attr 不能用 = 來比對。因為各種檔案或目錄屬性是會相加的 目錄 faDirectory? = 16 (00010000),隱藏 faHidden = 2 (00000010) 所以「隱藏目錄」= 18 (00010010) 應該改用 if (sr.attr and faDirectory) <> faDirectory?then? 來比較 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |