|
' {/ J p: Y' r7 \ C- [
void __fastcall TForm1::FormCreate(TObject *Sender)
' J) T9 R+ `6 S; F7 Q{ 7 S$ K1 L: c; n, W- x1 k( y
CurrentDir=GetCurrentDir();
6 M. o% _' q B" _+ J/ _UpdateTreeView(); ' L" U: h) b ?
UpdateListView(); : ~; ]* R1 U# Y4 @ u6 E, A( c
}
9 E5 T g( r e t" S6 T//--------------------------------------------------------------------------- 5 d: x5 \! B) ?* b
void __fastcall TForm1::UpdateTreeView() 4 }% n& Y; q" F! S3 K1 W6 v
{
9 U6 U2 V" o) `+ `1 x" E( MTTreeNode *rNode,*mNode;
0 S6 X" R! N+ ^) }9 W6 }* L$ vTreeView1->Items->Clear(); a5 `- i3 M, v9 R5 T5 I! b o3 z
rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑");
; _. c& {; X8 \6 k1 }rNode->ImageIndex=1; @2 D F2 D8 B$ `
rNode->SelectedIndex=1;
1 e# P7 {, o' Q! ^; w& _% e* ^ cmNode=TreeView1->Items->AddChild(rNode,"A:"); $ t% h1 [' M. K! X7 ^0 G
mNode->ImageIndex=2;
, W- Q$ P9 m# ^" G1 y* Q7 ^: C7 ZmNode->SelectedIndex=2; $ W. c# [: ]6 n& ?
AddDirectory("A:",mNode);
! B3 x. z( L* [% d+ c, yfor(int i=1;i<DriveComboBox1->Items->Count;i++) 1 X0 W: L5 N1 n8 H. F- ~
{ : y& Z0 \ l- [; {( ^
mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ) w$ k4 H Y* F3 i* [
mNode->ImageIndex=3;
" m# e; u5 ?: i% EmNode->SelectedIndex=3; & `* m1 [4 l1 y& f8 B
AddDirectory(AnsiString(char('B'+i))+":",mNode); + G4 r' e" U" |7 }, s) x
}
9 w% d; K. v, P, Y$ O9 n% c. v% ?} " C% [+ K! P6 y. ]* b" ^
//------------------------------------------------------------------------
n8 p2 }0 w6 @& `) tvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 1 ~( c% U2 c4 ^8 s0 N
{
, b2 `- M5 h4 K, j5 [ s- n: O1 fTSearchRec sr; d2 W$ A, Z; k, }( r! j$ W
TTreeNode *mNode; ) A* ?1 n d7 X4 d2 U. n
if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) % B( u. U' `* e: n( `- b
{ 7 Q! M: k5 q2 Y) X$ H9 b
if(sr.Attr==faDirectory)
2 ?, ~' c2 v$ l6 E2 W{
7 a7 N, ]1 P; r7 v( M* Dif(sr.Name!="."&&sr.Name!="..")
$ ?* T. K/ v7 v! T7 T) k{ 6 q2 t: T: S6 Y
mNode=TreeView1->Items->AddChild(fNode,sr.Name);
9 A+ X G5 s: DmNode->ImageIndex=0;
# [( e1 R' A& S0 LmNode->SelectedIndex=4; / B! v7 H; N, Q
// AddDirectory(path+"\\"+sr.Name,mNode);
" i4 b: }: \* @* c# }3 | a0 p" H}
# ?$ e0 R- Z! L2 E' R}
( l- e2 S1 ^1 q! ]# L) r/ U5 J}
: i/ _9 Q& L% K' zwhile(FindNext(sr)==0)
. V, X+ Y1 O0 O$ ]+ [2 e7 s{ 3 f" ?) w0 O, d
if(sr.Attr==faDirectory) 5 O+ t$ g, r% U
{ ; U6 k- A$ h/ ?9 N
if(sr.Name!="."&&sr.Name!="..")
7 n' d W( p( ]0 L3 [/ T* @7 ]{
+ V( F+ p0 y3 b: G" rmNode=TreeView1->Items->AddChild(fNode,sr.Name); " ^! W- \( T( n
mNode->ImageIndex=0;
( s( B) Q9 D! J( N- v8 kmNode->SelectedIndex=4; 4 U/ ^, \- G8 \1 f4 d1 Q; l) L
// AddDirectory(path+"\\"+sr.Name,mNode); 0 J) B' i2 l6 G. L4 ^
}
3 v* i( L2 u! r8 W}
$ o6 l% |+ k0 W, `}
! \$ X7 K3 j3 RFindClose(sr);
; n, f" P+ F8 w, q8 T) D- A}
) {, F- u. b( C( {4 d//--------------------------------------------------------------------
9 L0 o+ d9 Y. Lvoid __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node,
: J, c* a+ {1 h1 `; O# zbool &AllowChange)
" J6 ?% W T! z* x$ \{
3 U9 x: [+ h6 t3 VScreen->Cursor=crHourGlass; 8 f& u3 }2 r6 X
TSearchRec sr; 1 Y. F4 C7 G+ c% z3 @- D
TTreeNode *NodeTmp=Node; / `2 t% h; N ^( l
AnsiString DirName,DirTmp; 9 Q9 ]" g& m- h0 y
DirName=Node->Text; # E! _/ \9 m: y: H( f; U! ]3 V+ m3 t
for(int i=Node->Level;i>1;i--)
/ a1 h. c2 ` L" c; b{
6 Q- F! F0 {' x6 A4 RNodeTmp=NodeTmp-> arent;
- f5 D* t* K1 U0 |4 ~; ]; I+ vDirTmp=NodeTmp->Text;
" g) E! ]7 w* w! k, tif(DirTmp.SubString(DirTmp.Length(),1)!="\\")
V: _4 k/ Q# s6 f+ ]. cDirTmp+="\\"; # e& M) k1 a( n+ d3 q) Z
DirName.Insert(DirTmp,0);
C, w7 g' r6 B/ w) C8 \4 Q}
% v5 a" E) B; t1 F. q' B- X& mif(DirName.SubString(DirName.Length(),1)!="\\") 7 A' L" h7 \7 g: U1 N
DirName+="\\";
4 f9 c" P4 w) ^" I/ Afor(int j=0;j<Node->Count;j++) # }( |4 H! Y7 [
{ 8 ?, S5 V6 P9 a# W9 ^8 H
if(Node->Item[j]->Count==0); + v: D* k2 A! u( p' w) R* {
{ ( N2 B( ?8 k. s9 D
if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) 9 D+ x5 N" C+ j# p5 v+ l! e
{ 9 \( x7 Y) H. N9 C0 d3 y" q4 H3 U L
do , D- `& M3 d7 Z( V* Q
{ ; f- b5 l+ ]% U, y& ^" V
//Node->Item[j]->ImageIndex=5; s/ e! O. W2 r6 s, D) ]3 ~3 g) L
//Node->Item[j]->SelectedIndex=4;
5 E; t! k8 u- d: ^* Pif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..")
. N" B& ~1 ? W8 {% O; l5 y+ a8 x{ . a; E7 C, }# [8 F. Z
Node->Item[j]->ImageIndex=0;
, t) H% x1 v! [: m. q8 WNode->Item[j]->SelectedIndex=4; s. v8 Y5 h. }. a- c. j, R, \
TreeView1->Items->AddChild(Node->Item[j],sr.Name);
; n/ @6 ^* f$ ^$ G+ S}
) o/ `* h) |) z& S- k% `8 ]7 x}
" V# A, V* \( P* y. L: ~' Nwhile (FindNext(sr)==0); ' M8 D% d0 m' E8 [0 t
FindClose(sr); 7 t( R( Y* L1 j4 h- x) J9 \
} / h( l& x, N* _
}
2 Y/ ~7 i8 E# [, g$ \( W( j+ W/ ?} ( X# A! y5 m& r; ]
Screen->Cursor=crDefault;
. X# d" C4 p% x9 P. T& J; ~} |