|
) l9 M. y$ X* L9 d! i: t
void __fastcall TForm1::FormCreate(TObject *Sender)
9 A5 ]5 x* j3 C( X+ k7 _0 c; q{
8 {! k# A& `* ]1 [7 l( B! tCurrentDir=GetCurrentDir(); 8 t" d3 M. y' u% x. G( O
UpdateTreeView();
9 t, N" d3 p; P0 j- W$ @: _UpdateListView(); ( m" | D( M y8 E1 Q0 T
}
! b0 O5 M! g6 ^5 Q( q//---------------------------------------------------------------------------
9 T3 e5 G" D- `- P/ avoid __fastcall TForm1::UpdateTreeView()
% j7 _4 `3 P# }: T0 {1 o# e" e{
; @, e' b* U& n( d) ~TTreeNode *rNode,*mNode;
# w4 }# t& N% A* L3 {TreeView1->Items->Clear();
+ k( R% P! n# h; p8 R' BrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑");
; E- w- R% |' _+ [. i2 e& ErNode->ImageIndex=1; * q& F% {/ W( V0 C
rNode->SelectedIndex=1; / ^5 c4 e" x# j" R
mNode=TreeView1->Items->AddChild(rNode,"A:");
( t9 p. ]. G, z, S/ S8 C' {/ |mNode->ImageIndex=2; + j' t2 C t9 l3 w# m6 V* h
mNode->SelectedIndex=2;
. h) `7 }1 a# y3 k7 UAddDirectory("A:",mNode); : E4 H e: i) G. | ~
for(int i=1;i<DriveComboBox1->Items->Count;i++)
+ P3 H6 U- l/ }1 S" E& x: m0 C{
' P2 P! D$ A, T+ X1 OmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 3 s- y4 E% L4 B) \! H; K% v
mNode->ImageIndex=3;
: M0 X8 u& K; `2 n: d' GmNode->SelectedIndex=3; 0 M! t# ]3 L/ c0 o4 }+ A) V
AddDirectory(AnsiString(char('B'+i))+":",mNode);
* E) V5 h. a2 G2 N$ W( \}
* {' |' S. d. n: ]. I! W- O} ) Q/ x" V+ o$ q; P6 L x
//------------------------------------------------------------------------ 1 G1 l* U& \6 Z; w- [
void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode)
+ a# Y" u( u0 X7 a2 u1 P2 Z{ 6 k- L- ]& M, V
TSearchRec sr; 3 v0 e) ?/ \! x; p) m, w$ t9 q
TTreeNode *mNode;
6 R9 Y# X+ p" R2 _0 }if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) * r8 C1 S) a1 o
{ 6 Y& H& z( u7 r
if(sr.Attr==faDirectory)
: @1 L5 W6 l5 ~1 t{ _3 }2 n6 y7 g8 r
if(sr.Name!="."&&sr.Name!="..")
9 w7 y) q0 n8 R5 }{ * w, I5 A% K# a7 E/ K% d
mNode=TreeView1->Items->AddChild(fNode,sr.Name);
( x4 u+ S* _$ M, x7 _mNode->ImageIndex=0;
, C3 J6 q2 i& a2 p, |" N; kmNode->SelectedIndex=4;
; S( j8 n c6 q4 X// AddDirectory(path+"\\"+sr.Name,mNode); 7 M6 Q1 y# x) N' Z
}
) m( o2 i1 `# p' b( [}
! S/ r% o; o) P( E" R}
0 C* I) e% D. ewhile(FindNext(sr)==0) 6 u; Z/ ]9 x3 I- d1 r
{
, `- [! C3 l5 ?0 o. A* {if(sr.Attr==faDirectory)
4 o" I+ }$ @. m' N) ^{ ' q% @/ N4 O7 N* u
if(sr.Name!="."&&sr.Name!="..") 0 }, ~7 f/ O# U* K/ Y
{
1 x! r6 X: L- gmNode=TreeView1->Items->AddChild(fNode,sr.Name); ' a* {8 G2 x: n- c' ?
mNode->ImageIndex=0;
" y! E; P2 o, E4 B: F' a# CmNode->SelectedIndex=4; & D! p1 [0 J* s& j
// AddDirectory(path+"\\"+sr.Name,mNode); % T8 W& z& M- F: O' S
}
0 _. E8 a F, `6 L}
6 J; ]4 d; ~0 m$ Y5 I} ) b! O; c; H4 }/ i1 ?4 L& Y: N0 K
FindClose(sr);
0 y3 Y% k3 X8 t1 w& D} 1 U! m6 O. y4 j" H, D9 w) K5 w
//-------------------------------------------------------------------- ' v! v7 e9 ~" N" ^+ H- w
void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, & I* K! j/ Q+ ~3 M, {6 Y" F
bool &AllowChange) 5 X/ q1 C5 V5 _6 D% J) q! g
{
2 H# i, B% q6 l; M* e$ q4 YScreen->Cursor=crHourGlass; , B R4 k$ J$ c- g
TSearchRec sr;
2 w, t/ L1 w! E( e: @TTreeNode *NodeTmp=Node;
9 A$ E, Y9 \* b) N* u* oAnsiString DirName,DirTmp; 8 L& R$ }3 O1 r! u, h" F# n, S
DirName=Node->Text; 9 ~# y# w* ?" L K. F/ ]
for(int i=Node->Level;i>1;i--)
' R4 B% @7 j, l" B7 S/ R S{ 6 w& ~3 S2 }+ ^( w/ L2 g% J0 W
NodeTmp=NodeTmp-> arent;
% W7 z& L. j0 Q$ P6 ^4 U7 LDirTmp=NodeTmp->Text; : l8 ?8 h, S$ ]; j( ~! s/ z7 K
if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 7 x% `8 z1 l% Q& y9 M0 h0 F5 f
DirTmp+="\\";
; a/ |. v4 |/ W, M6 j& p8 \DirName.Insert(DirTmp,0);
2 L/ N; A0 o3 T" u& v$ L+ m}
; h+ R: ~4 E" N. i# G+ Aif(DirName.SubString(DirName.Length(),1)!="\\")
. t v* A9 i5 U& E; u% DDirName+="\\";
: l& T; x( R/ ~% t3 f$ Dfor(int j=0;j<Node->Count;j++) 0 q/ p( G5 o1 T1 m( `9 o: E; K
{ : q0 z) w6 u2 @4 h# c
if(Node->Item[j]->Count==0);
! t/ ]4 m* m- D/ J; i2 @ g{
9 a) z( I* H) cif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0)
% z( O) Y5 u$ F; c5 L" U{
' L2 Z, U( C. {0 tdo 3 _, i* L4 a0 p; X3 m+ ?* g7 v
{ / F0 ^! R, C6 `; M Q, N
//Node->Item[j]->ImageIndex=5;
% O& z5 Y) Z: V5 W3 A }. r//Node->Item[j]->SelectedIndex=4;
& _- h, ~1 l6 bif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") ) Y( x& y) k' A8 ^! n
{ : k5 W0 x8 W- g% {/ o
Node->Item[j]->ImageIndex=0; ! I# B& @6 H/ j
Node->Item[j]->SelectedIndex=4; & S0 l5 K( \: h$ [" Z. _- V: y
TreeView1->Items->AddChild(Node->Item[j],sr.Name); # G3 c- M' i+ q2 O7 S& K- A4 ?9 z" [1 d
} % R( h) b* A) u$ G& [4 h+ x
} 3 e' V& l( C% ?! U- s
while (FindNext(sr)==0); 5 ?2 p! G* r( K2 s1 U8 {
FindClose(sr);
H7 N) f6 @, [8 ^}
" u; E/ I# T% a* C9 T9 I6 I7 y( S}
4 m2 N( o: G1 N8 B' A/ r4 p0 X" V} $ Q, q9 d7 z+ c% z* L. m
Screen->Cursor=crDefault;
, t5 ?' H( I/ t} |