|
6 ~% B2 ~% ?: d% H. |
void __fastcall TForm1::FormCreate(TObject *Sender) ) ^( T$ A7 Z4 j9 o
{ 6 g( f0 Y: @4 Q: N0 H/ n+ o
CurrentDir=GetCurrentDir();
, U9 ^2 u! g- U6 c. I5 M, w$ nUpdateTreeView(); % u: Q( i& w# r2 {$ S v( Y
UpdateListView(); + O$ _3 K! W; O3 l9 U6 \: a
} 4 R9 F. q h" v8 l6 ]" A
//--------------------------------------------------------------------------- " r+ M! k2 L: Z# _" r
void __fastcall TForm1::UpdateTreeView()
% h( U* H& b, h- T9 t{
1 r! {6 p4 K' \- }4 a# B: ]TTreeNode *rNode,*mNode; - P \6 ]' J+ m+ k$ F. i3 E3 ]- P( p% h2 O
TreeView1->Items->Clear();
+ E' ]4 r% f1 e. ]: L2 |: xrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑");
/ N5 a+ b8 o- z( frNode->ImageIndex=1;
' ]( z& f4 [0 p+ H6 G' y+ C" arNode->SelectedIndex=1; ) a- Q$ Z% ~) n! V) W" Q2 V$ v3 t
mNode=TreeView1->Items->AddChild(rNode,"A:");
+ N% y ]4 v/ |3 r) ~mNode->ImageIndex=2; ; h% O4 K" x) L# x
mNode->SelectedIndex=2; ! p6 c0 ?" b: Z' ?
AddDirectory("A:",mNode); ; I% {* M8 T6 v7 q% `
for(int i=1;i<DriveComboBox1->Items->Count;i++) " Y1 A8 j" g1 ^, g
{ . Z4 \. [, w- f, B3 ? J
mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":");
: T6 a" ]+ }1 c. ~mNode->ImageIndex=3; ) C5 M4 U! D0 M2 @6 A, N! q, \6 A
mNode->SelectedIndex=3; - p$ K% r, O1 C$ @
AddDirectory(AnsiString(char('B'+i))+":",mNode);
/ J$ P: v' t: q& N( q8 V}
. o. ~ o1 l8 F0 M$ s} $ F. A" C. D9 I) l0 E
//------------------------------------------------------------------------
( p) ~& z' a' q7 ~( d1 Xvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode)
2 O8 _: a! ?* [- I3 o \1 p{ 1 \: S6 D3 y% k0 F
TSearchRec sr;
2 C( l% |5 D" T# k# F. rTTreeNode *mNode;
6 j: b: N" S& `8 Iif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0)
6 e" k( z* x' q# s{
3 I+ ^) z& n, [! g* X3 ~if(sr.Attr==faDirectory) ( Y1 J g0 K8 N" Y: [0 D, Y( a
{
8 Y; \8 }; k2 B eif(sr.Name!="."&&sr.Name!="..") ; x- u; t. M7 r% Z
{ 6 T6 {, Z% ]. ?+ m2 P5 G
mNode=TreeView1->Items->AddChild(fNode,sr.Name); " x2 G) D' m( a2 L
mNode->ImageIndex=0; , E. a3 y0 h+ ^8 {1 Y
mNode->SelectedIndex=4;
! G& H0 Q2 c/ P5 b/ m2 [4 E+ x6 M/ k// AddDirectory(path+"\\"+sr.Name,mNode); {# g w0 g- O( H6 w5 I
} ; k! h' k+ O8 N5 c1 c9 V' f) a0 M
}
* L8 C' F# t! H- l6 m}
) W* J3 [8 C5 ~! `' M/ Hwhile(FindNext(sr)==0)
) c8 h4 b! f* E{
' y" Y5 @1 ]6 L; gif(sr.Attr==faDirectory)
# d0 ?" H& N2 Q{
5 i F; K. h$ I4 C7 Bif(sr.Name!="."&&sr.Name!="..")
, ^* O+ V- l& m8 E7 |3 ]{
$ y$ n m; ]+ H2 [4 y* {2 kmNode=TreeView1->Items->AddChild(fNode,sr.Name); ! o8 k& B/ m3 D5 p2 x$ R
mNode->ImageIndex=0;
0 \+ g: Y. I- `3 t/ c1 B U9 vmNode->SelectedIndex=4; - G6 \7 |: Z3 @" h& t
// AddDirectory(path+"\\"+sr.Name,mNode);
# ^. d b p9 V z7 Y8 O}
) `0 c) }- Q+ b$ Y" p* Z- L. N} ' h0 E" a- M1 y6 v. e/ Z* k
}
. T; w% \' N$ F) |5 K- Q4 t4 G" qFindClose(sr);
9 X0 b k: c L# L} ; b8 S# o, v- e
//--------------------------------------------------------------------
/ U) Q, p4 @9 Z5 V2 S* [1 B4 Bvoid __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, L8 x/ e/ @5 S9 X! V
bool &AllowChange) ( i6 ?& F/ k# J$ G' e
{ 5 X- S4 {6 S( d: `" K7 B+ k
Screen->Cursor=crHourGlass;
3 w) N; O1 Z2 cTSearchRec sr; & t$ r1 U( u7 [; Y$ g
TTreeNode *NodeTmp=Node; . F0 D/ L, H9 K. g' U! \" z$ U
AnsiString DirName,DirTmp;
2 Z# X6 e) Z% d6 \DirName=Node->Text;
9 L6 R" ^ N$ Y2 q `for(int i=Node->Level;i>1;i--)
9 j' _' U6 i* {+ o; g2 y! j' Z{ 7 i. ?) K! g+ @* Z/ G! }, J
NodeTmp=NodeTmp-> arent; ' l* W5 {& A3 z) u* f* t
DirTmp=NodeTmp->Text;
+ l8 O0 Y4 c {' \3 e- S/ ^if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ; o3 h; C. ~' ^7 Q6 ]7 Z
DirTmp+="\\"; 3 B( G: L8 [+ g3 ^0 b. G# Z: j: T8 X
DirName.Insert(DirTmp,0); , f8 N4 m+ C3 v, d9 p5 D
}
( ]' O( z- P }. q0 A7 D6 gif(DirName.SubString(DirName.Length(),1)!="\\") 2 D5 Z$ x: Z8 q4 K) j3 `; @
DirName+="\\"; `/ p4 ~, B, j- K& q6 o/ P
for(int j=0;j<Node->Count;j++)
0 S4 W5 Z: ?' i5 t3 l4 C{ ) V( V0 F, `* A$ B, }2 B
if(Node->Item[j]->Count==0);
" y$ ?5 [ i$ n9 C# u% j{
7 {3 v7 S3 ]) O8 Lif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) & i* L! G" u5 t3 b# M# P
{ 2 @* |8 u- h3 _8 W5 F' d% f
do 7 i: G& V8 ]% K1 l! `: f
{ 1 p6 r5 h0 S+ e2 q
//Node->Item[j]->ImageIndex=5; 4 g& y! E2 R, @" J. k
//Node->Item[j]->SelectedIndex=4;
9 B0 }' F4 e! i- ^ Hif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") - j# J2 P5 v7 \( a" f! i
{
6 {$ o* Q. `5 o% A% hNode->Item[j]->ImageIndex=0;
5 w" y" C/ W' T: r9 DNode->Item[j]->SelectedIndex=4; m: z$ q( _' U0 J
TreeView1->Items->AddChild(Node->Item[j],sr.Name); ( F. Q3 Q5 O, u0 T0 P
} & W8 s2 w Z8 M
} % \) a0 H9 z! K/ N, e
while (FindNext(sr)==0); 6 }3 I4 n( [" |! g' R
FindClose(sr);
) z; P3 f9 V' c* P- l3 ]" |5 e} 4 l) D# U9 B3 Q. q# C
}
) h, C6 ~% Z* d2 ]1 _}
$ w8 ~9 l; U2 y* l; \8 QScreen->Cursor=crDefault;
R1 d. i8 m3 A7 a6 o9 _} |