|
0 a% I& b& u* D: q1 e5 [1 C2 _4 L% qvoid __fastcall TForm1::FormCreate(TObject *Sender)
7 ]% b+ H' H8 u1 G{ 8 w$ n- d5 [8 \ S! H5 k
CurrentDir=GetCurrentDir();
9 K! ^; I5 @) x% d; ZUpdateTreeView();
3 l$ l( E. X( z8 U7 u, ~UpdateListView();
5 j/ v4 w: E8 ^* F) ~- D6 {( R} . m) k2 m# I: a, i% V& w+ |: C
//---------------------------------------------------------------------------
/ l* y) {7 p4 p# C. wvoid __fastcall TForm1::UpdateTreeView() ( {- J K+ \/ [1 {# L" J; N6 a
{ ! f( ]# {4 \, a- T2 U! H6 @ D V
TTreeNode *rNode,*mNode;
8 M5 e/ R$ Y8 m1 ITreeView1->Items->Clear(); 8 v% Q; ]2 _6 R/ V! y# e$ m
rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑");
/ ^) X# k7 g4 t" f3 \rNode->ImageIndex=1;
1 `* B0 g5 l7 Q1 v/ i+ f9 MrNode->SelectedIndex=1;
3 c; X9 c% Z/ y) Q6 W2 T* [mNode=TreeView1->Items->AddChild(rNode,"A:");
- r" f! J3 z8 B- B4 }; UmNode->ImageIndex=2; " N# m5 I! h4 c2 a. _, ?" s ~& d' {
mNode->SelectedIndex=2;
0 p9 b1 d# [5 |: @8 B' CAddDirectory("A:",mNode); 8 c6 [$ V* V& `0 w
for(int i=1;i<DriveComboBox1->Items->Count;i++)
8 _% g! S' R& S8 f: [{ ! W4 _4 g/ ^* u' l- s$ `
mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 9 ^4 b; G, B1 o. f' x$ }' x) H
mNode->ImageIndex=3; : q+ z! K. |1 F! D9 O
mNode->SelectedIndex=3;
, |9 l5 s, o# h9 SAddDirectory(AnsiString(char('B'+i))+":",mNode); ; W+ |; S( b, W' a
}
, [/ ]7 n6 [8 G! W& o R}
! K: C2 Y/ @7 S% L! W//------------------------------------------------------------------------
0 b: m) U! M; G L3 z/ i+ C. @void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode)
' e, d6 l% v3 i0 b- v{
" K! R9 |! K7 v, G! [' eTSearchRec sr;
. p( l, X2 x8 N0 JTTreeNode *mNode; 8 k% ]. |; l0 Q1 p8 b: J0 h
if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0)
' t6 q2 U/ R2 K{ ) Z6 J* }$ k+ Q0 w Y! C
if(sr.Attr==faDirectory)
) S4 ], R c* F C* q{
9 t: d, L% D! J H% p) oif(sr.Name!="."&&sr.Name!="..") 5 L k$ f* v& a3 B# g
{
- |& V# d1 X8 s' _+ N4 j: J/ vmNode=TreeView1->Items->AddChild(fNode,sr.Name);
) A' w, B2 R/ n! Q+ v- q3 vmNode->ImageIndex=0;
- M, a4 ]; [& X) l$ X0 DmNode->SelectedIndex=4;
% Z0 M4 n: e9 _; [$ a4 b// AddDirectory(path+"\\"+sr.Name,mNode);
; o7 u" H$ W, L8 Y0 f}
! P& _' h U6 f6 J6 `4 Q} 5 E7 A" B0 P& K5 o4 F* m
} 4 D, _6 N% L3 |1 q" b+ b6 Y; Q
while(FindNext(sr)==0) & O9 {% X, l: \
{ $ V( i. s* I5 ]
if(sr.Attr==faDirectory)
1 n2 v$ m" K9 K0 ~, M" D{
* R, M, a/ } ~- v, Oif(sr.Name!="."&&sr.Name!="..")
8 r/ c1 f: s& [: x& k/ a( Y7 O- Z{
/ b9 s5 _9 Y/ i( l3 o+ F( }' FmNode=TreeView1->Items->AddChild(fNode,sr.Name); , A( \( E+ G- o1 K8 ~$ ^5 y' ?
mNode->ImageIndex=0;
( B6 Z \4 I; ]mNode->SelectedIndex=4; " |: ?8 o! n# k9 j4 ]2 D2 v
// AddDirectory(path+"\\"+sr.Name,mNode);
* j$ U3 T5 X) l ]0 N6 t, ?}
$ H; N9 Z) f6 S$ h' z}
/ V q2 n$ Z6 g/ U} 3 `5 Z9 F" ^$ E
FindClose(sr); 9 n6 Q: F; ~7 z# V2 w
} ' X+ J. p& y" I
//-------------------------------------------------------------------- + L- U6 J5 t2 y* T
void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, * p/ j$ Q1 r4 @1 |) G6 O
bool &AllowChange)
( @7 i* _8 a. `{
+ d# _, c! u6 P7 L' D' h8 V. r; gScreen->Cursor=crHourGlass;
2 t! {2 H" |' T( e) gTSearchRec sr; 7 j3 K X/ H9 t' o) V
TTreeNode *NodeTmp=Node; + H) y, V: x% [( V5 @2 o0 b
AnsiString DirName,DirTmp; 8 r8 |' V/ U u9 R
DirName=Node->Text;
7 l" k$ q" `5 s/ q8 N! Yfor(int i=Node->Level;i>1;i--) 9 J1 {! I" R0 ^; }$ ?8 k
{ ' e7 \, A: M) B; w | F
NodeTmp=NodeTmp-> arent; , O& f( ~$ s6 B, U$ p4 ?: Q" O
DirTmp=NodeTmp->Text;
# s# U8 \: {5 i% [7 o' P; C2 Uif(DirTmp.SubString(DirTmp.Length(),1)!="\\") B; A F+ p* l) Y' a I e+ j& R
DirTmp+="\\";
8 W1 m7 b- M/ ` HDirName.Insert(DirTmp,0);
0 k' f0 S, p) K) V/ K} + L5 R+ z5 P' a# D6 j- Z
if(DirName.SubString(DirName.Length(),1)!="\\") " m: k9 M+ ^, b t* @$ y- C9 y
DirName+="\\";
- N0 ^! Z5 I9 r- S* p$ }for(int j=0;j<Node->Count;j++) , u, d+ u' ]' ]
{
" J2 g4 ^' d% X$ b& P; v, _2 gif(Node->Item[j]->Count==0); 6 C% D, B7 u: x2 e: ^! T, e
{
9 n2 J, v* ]7 { ~. W! \if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0)
8 O% B: x o" e2 @+ b' ^{ 2 |6 C, `5 \ f% u' {
do
6 X- y: g$ N: w0 b% \3 ^" m{
9 m/ ~7 X! Q; K( a3 E: N//Node->Item[j]->ImageIndex=5;
* @; o' v6 m1 g5 I7 T//Node->Item[j]->SelectedIndex=4; ( {2 R5 o/ s2 e
if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") . L1 N; I b1 e( {& [# b: C
{
/ C& q7 \# w9 B& u; D- HNode->Item[j]->ImageIndex=0; , H5 j p7 e- _
Node->Item[j]->SelectedIndex=4; . H8 P4 L5 j2 u7 l X. s. G% ^
TreeView1->Items->AddChild(Node->Item[j],sr.Name); ' P: |( p% d9 G4 t9 o. w1 q
} . s2 r5 ~* L* K% G ~8 W! h
} 4 k {, I6 _( J( c; D' _, ]2 ]4 e
while (FindNext(sr)==0); ' k8 J/ Z9 O% p2 h W4 Y
FindClose(sr); 6 |7 N$ U$ x2 z" S: s
} + X0 a: P: z3 \6 w, i g: A% O) d
}
+ v1 h& _8 k$ I7 d4 b% @}
, [' h: \4 z* W' F0 h8 hScreen->Cursor=crDefault; : p! a1 o7 E0 }/ \! h9 ^
} |