全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1848
推到 Plurk!
推到 Facebook!

要如何只取得資料夾

答題得分者是:jow
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-20 23:24:14 IP:59.114.xxx.xxx 訂閱
我之前是有使用DirectoryListBox + FileListBox 來處理取得資料夾數量
但請問還有別的方法嗎?
我只是需要某個資料夾下所有的資料夾就夠了(檔案不要)
舉例來說:
在C:\裡還有四個資料夾、10個檔案
但我只要知道有幾個資料夾就夠了
其他的不用管

因為之前是使用DirectoryListBox和FileListBox 來找
但是現在想使用別的方法來實現
請問有方法來達成嗎?
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-20 23:42:41 IP:211.72.xxx.xxx 訂閱
做法一樣, 只是傳參數時只挑資料夾就好了!

將 findfirst("*.*",&DirBlock,FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_DIREC|FA_ARCH);
改 findfirst("*.*",&DirBlock,FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_DIREC);
findnext(&DirBlock);

===================引 用 demon740405 文 章===================
我之前是有使用DirectoryListBox FileListBox 來處理取得資料夾數量
但請問還有別的方法嗎?
我只是需要某個資料夾下所有的資料夾就夠了(檔案不要)
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-21 03:18:01 IP:59.114.xxx.xxx 訂閱
可以煩請前輩講解詳細一點嗎?
小弟我還是不太了解


===================引 用 herbert2 文 章===================
做法一樣, 只是傳參數時只挑資料夾就好了!

將 findfirst("*.*",&DirBlock,FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_DIREC|FA_ARCH);
改 findfirst("*.*",&DirBlock,FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_DIREC);
findnext(&DirBlock);

===================引 用 demon740405 文 章===================
我之前是有使用DirectoryListBox FileListBox 來處理取得資料夾數量
但請問還有別的方法嗎?
我只是需要某個資料夾下所有的資料夾就夠了(檔案不要)
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-21 08:39:26 IP:122.118.xxx.xxx 訂閱

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
i ,j: integer;
dirs : string;
begin
j:=0;
for i :=DirectoryListBox1.ItemIndex 1 to DirectoryListBox1.Items.Count-1 do begin
dirs := dirs DirectoryListBox1.Items[i] #13;
inc(j);
end;
showmessage(dirs);
showmessage('共 ' inttostr(j) ' 個次目錄');
end;

[/code]
------
努力會更接近成功
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-21 10:18:57 IP:203.70.xxx.xxx 未訂閱

[code delphi]
function TfrmMain.GetDirectoryList(TargetDir: string;
var L: TStringList): Boolean;
procedure getting_directory_list(dir: string; L: TStringlist);
var
F: TSearchRec;
begin
if FindFirst(dir '\*.*', faDirectory,F) = 0 then
repeat
if(F.Attr and faDirectory <> 0) and
(F.Name <> '.') and (F.Name <> '..') then
begin
L.Add(dir '\' F.Name);
getting_directory_list(dir '\' F.Name,L)
end;
until FindNext(F) <> 0;
FindClose(F);
end;
begin
if Assigned(L) then FreeAndNil(L);
L := TStringList.Create;
getting_directory_list(TargetDir,L);
Result := L <> nil;
end;
[/code]


[code delphi]
procedure TfrmMain.Button1Click(Sender: TObject);
var
L: TStringList;
begin
L := nil;
if GetDirectoryList('C:\WINDOWS\SYSTEM32', L) then
try
L.SaveToFile('D:\RESULT.TXT');
finally
FreeAndNIl(L);
end;
end;
[/code]
編輯記錄
jow 重新編輯於 2008-11-21 10:24:42, 註解 無‧
demon740405
一般會員


發表:6
回覆:10
積分:3
註冊:2005-12-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-21 13:40:33 IP:59.114.xxx.xxx 訂閱
謝謝jow、pceyes、herbert2三位前輩的教學指導
小弟我已經大至上了解了^^
------
**
何須劍道爭鋒?
千人指,萬人封;
可問江湖鼎峰?
三尺秋水塵不染,
天 下 無 雙
**
系統時間:2024-05-06 6:57:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!