|
; P/ Y K6 x" P, l7 E# hvoid __fastcall TForm1::FormCreate(TObject *Sender)
4 V% k$ Y! Y5 k, ^{
+ @0 ]% K5 Q6 A, M+ \CurrentDir=GetCurrentDir(); / L% Z! ~$ T" n, b
UpdateTreeView();
: O/ K; A0 y- A0 KUpdateListView();
* ?5 D/ V' U7 F# V( V}
" r4 B4 f7 ^$ M% v4 J//---------------------------------------------------------------------------
8 Y+ H {* `, y6 Jvoid __fastcall TForm1::UpdateTreeView() ) R: Q' P. q- J" z; g! d% T" y1 P" S
{
% y) M9 V, e" k c' e5 g9 Z/ rTTreeNode *rNode,*mNode; & k1 W! u# z3 [5 Q6 b8 a
TreeView1->Items->Clear(); ' _" T' u# }( r. N, ^
rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑");
s% B- O g& C# p; K& S hrNode->ImageIndex=1; 5 n; L7 L' N. S6 |; q, @
rNode->SelectedIndex=1;
! {- v" p6 n& cmNode=TreeView1->Items->AddChild(rNode,"A:"); ( {: V* N% h- ]; L& J
mNode->ImageIndex=2;
$ D! X. ]" F4 ?6 \4 y, T, ?3 kmNode->SelectedIndex=2; 5 j+ N- x) d4 `: K9 _/ ^
AddDirectory("A:",mNode);
5 S" N; m6 N. n* X+ V$ m# o3 C- ^for(int i=1;i<DriveComboBox1->Items->Count;i++) 5 H! w5 z# {: ~5 j, {
{ 0 _% I/ ~6 z. F% @8 S- N
mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":");
* a# u; H5 w, E' ^$ TmNode->ImageIndex=3;
7 B1 \! h& l( c+ x# v3 ^- g( MmNode->SelectedIndex=3;
' c; k5 K" ]+ N( S" EAddDirectory(AnsiString(char('B'+i))+":",mNode);
\, i( @; E* [, \} 6 p/ v. K' L3 j
} ( m1 T* E# P- U
//------------------------------------------------------------------------
0 r; F7 J( u* E7 ovoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode)
3 |- i, W7 J6 h$ ?{ ) s9 }9 H) n' u% i, Q
TSearchRec sr;
+ ]7 A% u; t; gTTreeNode *mNode;
& ~) i8 T9 w' h4 zif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0)
1 _& A' I5 H( [{ 8 t" c4 t9 P& K6 C
if(sr.Attr==faDirectory)
% A' l- \ S4 s: X$ F{ 6 I @5 z8 @: J* @( H0 i
if(sr.Name!="."&&sr.Name!="..")
0 Z! T5 z8 O1 ~6 h; T{ ; l# Y+ ?% N, T- y2 t; V
mNode=TreeView1->Items->AddChild(fNode,sr.Name);
1 W/ v6 B2 O$ ~ OmNode->ImageIndex=0;
8 D/ `; W E; N3 p: rmNode->SelectedIndex=4; 6 A* p& d+ J# n; G9 [. @! [
// AddDirectory(path+"\\"+sr.Name,mNode); 8 T+ q& b/ |9 e+ |( a
}
) ?' Z2 D. ]% T}
3 X% c) y/ J; B) h}
; `9 _# ]6 f+ p3 f9 s# m; E- Cwhile(FindNext(sr)==0) , R$ m' |0 L, ]. D5 c+ I
{
/ h2 |! m& P x" G8 U. K- Jif(sr.Attr==faDirectory) , l$ Y5 t7 F2 x5 t9 F& B* u
{ 4 ]1 d, y' A% x; g
if(sr.Name!="."&&sr.Name!="..")
. p" P: P: m% Q+ c% P' i' T{ 5 U# B, b& u( K; L
mNode=TreeView1->Items->AddChild(fNode,sr.Name); 4 I2 y* x+ i! W8 l* \
mNode->ImageIndex=0; 1 A) u; N- x8 l# W: R' n3 V
mNode->SelectedIndex=4;
% U0 ~( t4 u; Z% X8 o8 U; n, k// AddDirectory(path+"\\"+sr.Name,mNode);
/ K% p1 U0 ^# w/ m} . a* `9 Y6 o& I/ e! X @
}
( n+ l9 P; q; X) ?, v; C4 Z}
# j8 R5 O- R( c* N; B$ lFindClose(sr); ) g. d( h' \; Q5 e9 R" O0 U5 J
}
* ^5 c8 d* j' N- h0 f4 ]//--------------------------------------------------------------------
8 `8 v2 ?) h6 z7 E8 [2 V# ivoid __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 6 g+ [; f( k* b8 n
bool &AllowChange)
8 X6 z* i! m5 w0 r{
% S, O: H! ?5 M1 X! G7 |6 UScreen->Cursor=crHourGlass;
7 G, _) F+ p4 r" _9 hTSearchRec sr;
0 a; y, ?$ @& I6 x% [TTreeNode *NodeTmp=Node; 5 H) w o% s+ c6 Y
AnsiString DirName,DirTmp; 7 q) Y/ u' e. P' a* u
DirName=Node->Text; - l7 ^ [0 W- v M4 A7 X
for(int i=Node->Level;i>1;i--) 7 W9 B. C- H- s; w. x. K3 U
{ 2 W" ~6 A5 Y) ]0 d. j1 l- y
NodeTmp=NodeTmp-> arent;
: b0 ?4 u: f4 {: r& s; e% r" `DirTmp=NodeTmp->Text; $ i$ l8 ~ ~& a' C
if(DirTmp.SubString(DirTmp.Length(),1)!="\\") - A0 M2 u: s! u/ T8 p) ^
DirTmp+="\\";
x6 H; A, G: b$ T6 q/ S- E3 O( e4 KDirName.Insert(DirTmp,0);
2 x l3 v" R2 Y; c2 W w8 L3 P} + _6 i8 ?: H# j2 Z8 o; a2 ?
if(DirName.SubString(DirName.Length(),1)!="\\")
5 |# @: B3 O4 m" w6 P* _7 kDirName+="\\";
! _) X5 j- X7 a2 c! Q7 Mfor(int j=0;j<Node->Count;j++) 3 |- E/ M/ v3 P$ g
{
M; t0 U4 z+ K7 _3 O6 |3 \" aif(Node->Item[j]->Count==0);
5 u9 d+ d Y) e9 b$ c k2 c{ ' G3 I! { I2 g! g! m$ b& }7 K& I* S
if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0)
) t! z9 [+ o. N# g3 _2 X1 I9 a{ - {4 A& i. t5 r7 W* }8 k5 ~
do
9 H5 e% o6 M( ~" Y8 H6 R( v, ~4 a{ * i Z b8 J& H' k
//Node->Item[j]->ImageIndex=5;
5 \+ w$ [9 N6 D4 q//Node->Item[j]->SelectedIndex=4;
7 s. g" \8 z/ b5 `7 f( Cif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..")
( k- ?" _1 z6 [+ z{ 0 W# O* A* ]/ l$ S
Node->Item[j]->ImageIndex=0;
) u7 L3 c9 x8 t# n/ J6 {' }: KNode->Item[j]->SelectedIndex=4; 4 M8 ~, w4 o+ e" g+ @' y9 w& C
TreeView1->Items->AddChild(Node->Item[j],sr.Name); 7 W0 I# u! ~% L" R8 f7 T
}
5 {. K) Z9 l) F( M" y O" ?} ; }( K* q: X* L0 F
while (FindNext(sr)==0);
2 ?7 s( L# |9 e% oFindClose(sr); ' L; e. C2 q- A5 M7 I4 a, Z
}
! E- u* k4 x5 ~, Z5 |} ( z# P M- S# f0 `
}
. O2 T9 w& V( O/ k$ oScreen->Cursor=crDefault; 2 W! [9 E. L+ `
} |