|
7 O, l, ?! _% p& L4 I) l$ Ivoid __fastcall TForm1::FormCreate(TObject *Sender)
9 T5 A; r& v, s! g _2 }; R{
; A2 R8 Z' ?+ qCurrentDir=GetCurrentDir(); * N7 W% h; t. r5 u# U
UpdateTreeView();
4 k0 j4 i9 J0 ` C" {UpdateListView();
- V l. C& A2 C}
. x6 S) n: k7 B: `2 M% b9 u$ `//--------------------------------------------------------------------------- " I! J4 d8 H" V+ }3 L4 i Z' z
void __fastcall TForm1::UpdateTreeView()
( T2 J* N; }& u0 @% z{
" A$ _, C& H& a' i; y$ wTTreeNode *rNode,*mNode;
# M1 s% J, V# WTreeView1->Items->Clear(); 7 Y6 d6 `7 T9 _+ s z4 c
rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ! V) h7 R9 d- T; X3 B0 P
rNode->ImageIndex=1; 7 s. y( C! ~' z8 ~
rNode->SelectedIndex=1; 5 G$ T! o/ e/ ~1 s! @# Z- t9 P
mNode=TreeView1->Items->AddChild(rNode,"A:");
x, j; p9 n1 A" A& r6 e6 }6 }3 _mNode->ImageIndex=2;
$ D% i$ ^0 h3 b ~& E5 K8 h7 ~% FmNode->SelectedIndex=2; . k2 F. I6 ^; ` h; |, [
AddDirectory("A:",mNode);
. f; g5 d/ C; J1 L) x$ T1 g3 ofor(int i=1;i<DriveComboBox1->Items->Count;i++)
, J: ?) J- {" h{
# w! q v; |7 z# |: rmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":");
( c% y* i# p8 y L' z4 ~' b! RmNode->ImageIndex=3; * S# G0 d: S) J1 n
mNode->SelectedIndex=3;
' I) \$ \' g2 d, Q+ ^AddDirectory(AnsiString(char('B'+i))+":",mNode); + ]6 ]% d: d* \
}
) n. u- f# B9 T! m8 G: m} 9 D; S! |# j# }2 v
//------------------------------------------------------------------------
3 f6 d7 ^7 ?4 W4 O( Y$ m4 lvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode)
& \2 d3 F7 S" a8 ~{
% N, e3 h! x4 e V% H: ~+ I! A2 \TSearchRec sr;
6 L$ L {+ ] N- Q8 JTTreeNode *mNode;
6 p1 Q+ M5 S3 G' Rif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 0 Z. x( p8 X3 F
{ . d: A3 ~: i) P+ B4 K/ @
if(sr.Attr==faDirectory) : n2 P, ^1 I8 s# z
{
, v" K, }' }/ t+ Jif(sr.Name!="."&&sr.Name!="..") * e8 X0 E) r# ]$ m* k2 N [
{
A3 R6 D* n: C4 N s x0 R% jmNode=TreeView1->Items->AddChild(fNode,sr.Name);
. x; m, T0 K, ^: @7 UmNode->ImageIndex=0; ! R, j& [8 o, u) _4 Q8 F
mNode->SelectedIndex=4;
1 X3 {- E" ]4 f& ^( j+ |// AddDirectory(path+"\\"+sr.Name,mNode);
' |" P/ M" F, k' W}
0 c* L6 }* U0 o$ G* y/ k0 i3 Z} 9 e7 S+ I& E1 K; `1 s- V( T
} - r/ B' \6 L: d, ~1 Z( K
while(FindNext(sr)==0)
, `7 o# K' @3 G$ d& A$ K0 }{ * {2 T9 G. L- F/ y2 E N4 {
if(sr.Attr==faDirectory)
( |% c2 V4 a8 ^/ R6 h) ~{
+ A6 _! Q, z5 s% wif(sr.Name!="."&&sr.Name!="..")
& t1 A* v4 \. Z, {{
; h9 p2 U. i8 d3 ?- Q7 ?mNode=TreeView1->Items->AddChild(fNode,sr.Name); & \1 a- y8 V4 _4 n; X( ^! Q
mNode->ImageIndex=0; 7 O5 c9 B# R# G! L3 c ?
mNode->SelectedIndex=4;
# g3 O0 n3 M! n// AddDirectory(path+"\\"+sr.Name,mNode);
% k8 x9 T9 S2 Q- T3 G}
( z+ z$ m6 Z K} : C2 O8 g ? \- `" t
}
0 Z' a7 q L; EFindClose(sr); / U% J; H. L5 ~0 |7 W+ [2 k5 _
} - x2 v" A) q) J6 t
//--------------------------------------------------------------------
; r$ ]1 C. Z* d( a* L- [6 `void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node,
% I/ }, O+ W2 Z3 y4 Pbool &AllowChange)
9 T- ?2 F+ j+ O- Y{ 4 R% d! t: f, z4 q& \
Screen->Cursor=crHourGlass;
' _ |5 e" s' f! v5 YTSearchRec sr;
8 J$ m) d- J3 r- C- k/ xTTreeNode *NodeTmp=Node;
! }& K- F& N7 V9 d p) R0 @6 eAnsiString DirName,DirTmp;
, W5 Q9 B5 p9 B) A. _7 ]( |1 [1 }DirName=Node->Text;
3 T" q/ V* ?$ G" u5 Kfor(int i=Node->Level;i>1;i--) 6 w: G1 d& H V3 h2 J$ _5 w, p: e; {
{ & P: W4 Y* P3 m& y5 K* ~
NodeTmp=NodeTmp-> arent; ( T( }$ e9 Q% g# p. G/ `2 E
DirTmp=NodeTmp->Text;
/ a4 _$ z" `1 O) `: f, Z, F: j- Nif(DirTmp.SubString(DirTmp.Length(),1)!="\\")
8 s" u8 I9 i* q" L* F4 jDirTmp+="\\"; 6 f z9 x) |5 |# {+ h
DirName.Insert(DirTmp,0); . D4 t c" v3 B- M; ~( `5 x
} ( @! C8 R7 Y' u0 n0 g5 |0 F
if(DirName.SubString(DirName.Length(),1)!="\\")
0 M/ ]; J/ x% Y' o) _: TDirName+="\\"; ! c% }4 y9 k. Y9 A. h3 D
for(int j=0;j<Node->Count;j++)
6 K) F) w- Q: L- h' {6 l{
0 Z; m4 j% ?4 n& oif(Node->Item[j]->Count==0);
/ |% H; z( m4 X. t& L/ w `3 ~{
" S5 P- y3 R: U5 |) f2 _( aif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0)
- N2 e( y2 [" i* ?) R" v; F{
( @( x6 |! ^. n: g% Qdo # C( A' Y: b t
{ 9 G6 r; d" _0 T
//Node->Item[j]->ImageIndex=5; 0 n, W9 L! @' Z: b3 Z
//Node->Item[j]->SelectedIndex=4;
5 o0 o+ n) o1 x7 e, Qif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") * \- }0 z2 _' C- H. [
{
# N; [( Q9 s& w8 r) F! HNode->Item[j]->ImageIndex=0;
& B" m8 M' n8 n' ~+ V0 ANode->Item[j]->SelectedIndex=4;
# Y8 I4 o' \, N' o% I* ~TreeView1->Items->AddChild(Node->Item[j],sr.Name); ' t; {2 _* l* C' j- o1 T. R
} / _' K+ {5 D' S
} 7 w$ ]. n% M) \. e7 n" S2 [
while (FindNext(sr)==0);
5 q. m- Z% z. z# ?" \FindClose(sr); 7 c! g4 j. i- J6 p. S
}
# n( U9 v* w3 J* M4 n}
- U$ N, S* x/ V s$ ]& D) G9 m}
/ u4 F. e# `$ f3 x2 n. o1 AScreen->Cursor=crDefault; 2 M8 V, a% C" p8 [
} |