|
+ ^4 S( g ?: Q" a) U9 s
void __fastcall TForm1::FormCreate(TObject *Sender) - v# \+ ?0 I" I( s0 q" c. q
{
2 v; g& v- }0 Y% o1 w# pCurrentDir=GetCurrentDir();
( s! Y' h" w5 C, G( A" ?2 jUpdateTreeView(); 9 r/ \( }5 g x F8 x9 G
UpdateListView();
9 B3 T7 r" s# s* X: K0 [}
, P5 s) B0 Z% u9 R//--------------------------------------------------------------------------- ; X# w8 `* Q) o# t' ^# N' {
void __fastcall TForm1::UpdateTreeView() # w z' j. F+ ~, r0 j( k, _* q
{
+ O0 F D& t" S- cTTreeNode *rNode,*mNode; / i) L2 t1 R0 C2 K1 ~
TreeView1->Items->Clear();
( v5 ^. I( b) O0 n" A; jrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ; b1 @5 ?" b6 z, C8 R; a) b
rNode->ImageIndex=1;
3 x6 u$ d3 _: @8 x" f" srNode->SelectedIndex=1; 0 x* O' B8 R: D% }, M
mNode=TreeView1->Items->AddChild(rNode,"A:");
& ]3 e4 }2 h0 a. n- C& TmNode->ImageIndex=2;
+ c$ G# G& f: o5 gmNode->SelectedIndex=2; " ?$ F- ? [/ i2 p/ i+ [1 E
AddDirectory("A:",mNode); 0 W. U1 _- ] |, B! A4 ^
for(int i=1;i<DriveComboBox1->Items->Count;i++) 0 q. U& Z N* ~7 s
{
: K; U$ K1 n" d$ H: W( A* U' vmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":");
* S, R$ D0 m" u9 ?mNode->ImageIndex=3;
' P N& P3 [3 u" M$ f# YmNode->SelectedIndex=3;
% j( y! ^8 a: G: j( eAddDirectory(AnsiString(char('B'+i))+":",mNode); 4 w* \$ H, s5 E7 F6 L r% V3 b
} 8 t& Z6 S+ W: U, |& T" @, ^4 X
} ! E- @2 w6 s" l; ^, u1 e
//------------------------------------------------------------------------
6 b$ X; ?: ?; E8 `7 bvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) " d- U+ l/ C2 T: n- n# x# D) M( D
{ 6 c( ~, j% M2 ^1 I
TSearchRec sr;
7 L6 N+ S6 Z8 c8 d) ]) ~1 @8 r: G8 \TTreeNode *mNode;
; h- l4 A$ H k) t3 ~8 C; Rif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) & l$ N& e/ l: N, I
{
0 o7 E! K, U& R/ @$ Pif(sr.Attr==faDirectory) % K' x! N1 B4 t, g! o
{
" G+ n- g( }0 a" ^2 Bif(sr.Name!="."&&sr.Name!="..") 6 I2 C' \$ J" U# f" C( v2 ?
{
- k1 E- v: v% O" u2 e8 C: N4 s1 fmNode=TreeView1->Items->AddChild(fNode,sr.Name); + W6 |5 ~; r \; W
mNode->ImageIndex=0;
3 p) k7 l2 L% Q" MmNode->SelectedIndex=4; 0 V! d" T! B* o5 B, t) ]
// AddDirectory(path+"\\"+sr.Name,mNode); ' k8 \& ^$ T* {
}
* b9 [7 `: ~- n9 j; R$ M& w; B} o6 \$ v2 B% Z m" h1 ] _
}
0 y7 w# g# X3 c- e- J% G& gwhile(FindNext(sr)==0)
4 A5 \' B9 R+ i9 F. I{ 5 D5 q7 v9 v) \2 c( t5 D( B
if(sr.Attr==faDirectory) ) j! U+ b& k9 x/ h4 o7 o
{
% w( F' t P' H# z* Bif(sr.Name!="."&&sr.Name!="..")
& T% K6 x: G) y) ~* \5 F" `{ ; {$ S7 E5 Q7 J! q% J9 i
mNode=TreeView1->Items->AddChild(fNode,sr.Name); ' i) w' @( ]% m7 P* k; W
mNode->ImageIndex=0;
* i' k; s. n. ^' j3 r1 ^mNode->SelectedIndex=4; , r0 n2 C& d# o8 p% ?1 _& ]
// AddDirectory(path+"\\"+sr.Name,mNode);
$ p6 Q' E' u5 h/ T5 Z} 2 f0 P: ?' U3 W
}
: T0 _; H% W3 O* K3 g0 j}
( e$ @% t7 h) p+ x) j1 h3 ^4 yFindClose(sr);
- S3 x. Z! j- p) R1 R}
, X0 J: p# g8 E, ~) K2 |//-------------------------------------------------------------------- 2 b, z+ a$ @; j
void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, * v- i& Z; ?, a/ U. s7 d& H; {
bool &AllowChange) 7 D) p. P$ B m2 [( D5 q
{ - ]) }* k0 _7 s7 {8 y; ]
Screen->Cursor=crHourGlass;
1 x, N/ x2 B P& U+ `# qTSearchRec sr;
. `( K) m: m8 g3 N& @TTreeNode *NodeTmp=Node; ; E7 W0 E$ J$ i4 H" B5 T( U
AnsiString DirName,DirTmp;
. F" W1 j0 D' sDirName=Node->Text; * n! K/ Y6 @' P+ R+ Z* S2 j3 I
for(int i=Node->Level;i>1;i--)
* U% |: a, q/ ~: ?7 F) s. E{ " u6 ]' _$ T& Z7 ?& M
NodeTmp=NodeTmp-> arent;
3 e5 Z! P4 s& p Z( K- ]DirTmp=NodeTmp->Text; / v* W1 W! ?, }& O& G2 F, [3 m* `/ _
if(DirTmp.SubString(DirTmp.Length(),1)!="\\")
' o5 K# r& [. e' k1 s1 p$ a+ B7 E; UDirTmp+="\\"; ' z! D% b0 ]7 l8 d- g4 l
DirName.Insert(DirTmp,0); & B# F9 X" D3 C
} $ x% K2 b8 Q2 ?/ D, d8 A5 ~ V
if(DirName.SubString(DirName.Length(),1)!="\\") 2 W, m$ O! b* \9 c
DirName+="\\"; & z7 y `! c T- T( L
for(int j=0;j<Node->Count;j++)
: R! _& H/ d$ J{
1 l3 ? ~- P4 o' w9 Aif(Node->Item[j]->Count==0);
. ? |) m/ c' J6 P5 N{
/ Q) _: w! O0 ]1 Q% o5 A. M( gif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) , Z" H: ?" k" l5 d* ^3 C% @% v- Y! a
{
2 o! K" z0 K; \5 B9 N" bdo
7 h! }) W. L/ m& @{
' A/ p' Z6 i! X U. j3 ~//Node->Item[j]->ImageIndex=5;
9 ^/ F: t, n* ^7 g8 f- {//Node->Item[j]->SelectedIndex=4; ! v7 x: j% L' I2 E4 p) T
if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 7 q$ |: H5 ~& K" t
{ " ^. N8 R, y: g% n7 {
Node->Item[j]->ImageIndex=0;
2 Q& J* G1 m' B+ ANode->Item[j]->SelectedIndex=4; 4 ?( v9 J- a' z2 t8 {( \
TreeView1->Items->AddChild(Node->Item[j],sr.Name);
3 G/ N" N% J! Q: P& w8 f- F2 Y}
, [1 o) \" k, Y% f} - x4 f' x# G5 f
while (FindNext(sr)==0); ) z4 T( E; I( b: I
FindClose(sr);
4 Y8 h/ @$ Y% y: f% I- H7 v}
8 B5 J3 y+ x! r$ {}
1 s8 K i. ~1 t; e} ! g, d! G, C( }
Screen->Cursor=crDefault; + Q$ H' @. Y3 Y) x& a
} |