void __fastcall TForm1::FormCreate(TObject *Sender) { CurrentDir=GetCurrentDir(); UpdateTreeView(); ' A8 p- n" Y9 m4 S/ ^; k) s# U UpdateListView();
8 ~ N$ p+ {% t& g} //--------------------------------------------------------------------------- void __fastcall TForm1::UpdateTreeView() % x. _- y+ L1 I/ c { ( P; y% K# L( ?; T$ t TTreeNode *rNode,*mNode; 4 }8 ?2 w. J. ] TreeView1->Items->Clear(); rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); / F1 W7 ]. c, R( q) e% D! J rNode->ImageIndex=1; / u" i/ W+ s. U2 J" l rNode->SelectedIndex=1; mNode=TreeView1->Items->AddChild(rNode,"A:"); mNode->ImageIndex=2; mNode->SelectedIndex=2; + b2 Q8 x) _; b p4 `; q2 O- r AddDirectory("A:",mNode); ; b3 Y% A3 t; B0 n for(int i=1;i<DriveComboBox1->Items->Count;i++) { mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); mNode->ImageIndex=3; ) I5 O/ R+ E( B& T4 Q6 P) ?$ i mNode->SelectedIndex=3; 8 M9 j) j/ e9 G6 I AddDirectory(AnsiString(char('B'+i))+":",mNode); ) B" G5 D9 y, B3 J2 H } } 4 O% y W2 |4 {# K3 V0 i1 x4 j/ n+ j //------------------------------------------------------------------------ void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) & x6 Y5 h: n; v$ ~) u9 R8 B) R z2 M { TSearchRec sr; & h- p, y* X+ s/ \' b# Q, _5 ~ TTreeNode *mNode; `9 ~9 [( B, [! D+ F if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) { if(sr.Attr==faDirectory) { if(sr.Name!="."&&sr.Name!="..") { & _" U& D" ~" {" d mNode=TreeView1->Items->AddChild(fNode,sr.Name); " s$ y0 N f1 ~5 P2 b mNode->ImageIndex=0; 1 Q0 | P( t+ K& r7 [3 ^6 f mNode->SelectedIndex=4; " r6 v% x6 u; D* T- Q% c, A // AddDirectory(path+"\\"+sr.Name,mNode); } 9 T& X+ I/ r6 h R6 N } 0 T: s4 N& H3 } } + J" }8 O# M3 c4 C2 P' m* K# n: V while(FindNext(sr)==0) : \6 n q& g Y" P* g' s# w4 e { 3 F1 `& q; I) W) @: _ if(sr.Attr==faDirectory) { * C8 e3 E* m# g! e, v if(sr.Name!="."&&sr.Name!="..") ) |8 x; t2 w7 v1 }1 w4 S8 H5 I { ' E# v, G) o7 b9 }& Z mNode=TreeView1->Items->AddChild(fNode,sr.Name); mNode->ImageIndex=0; mNode->SelectedIndex=4; 7 {' m9 B+ R! h9 j- J& J // AddDirectory(path+"\\"+sr.Name,mNode); } } ' F! @& S$ f5 x# ^# d, H9 d } $ O2 Q! W' T" g FindClose(sr); % V* {1 o1 T6 p2 A f( x' V% e }
% M/ _( A: _5 Y A//--------------------------------------------------------------------
void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, " g3 |7 W6 @0 [* u- z* o
bool &AllowChange)
{ 5 M2 h- @& D" Q1 l. H6 J
Screen->Cursor=crHourGlass; * A8 I7 x n9 L2 O. q3 Q0 n
TSearchRec sr;
TTreeNode *NodeTmp=Node;
AnsiString DirName,DirTmp;
DirName=Node->Text; * q2 |' K3 g- U2 ^0 Z- Z0 m3 Q
for(int i=Node->Level;i>1;i--) % \% b4 {" }( X% y4 |8 e6 J
{ ( \1 T' D( N* m$ k
NodeTmp=NodeTmp->
arent;
DirTmp=NodeTmp->Text;
if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ; d+ c6 g9 q2 N( {7 C
DirTmp+="\\";
DirName.Insert(DirTmp,0);
} . o* Q# _- [' ^0 u6 [
if(DirName.SubString(DirName.Length(),1)!="\\")
DirName+="\\"; , d9 z! z0 n9 Z( W; E& n$ }1 E: K
for(int j=0;j<Node->Count;j++) # W3 h3 h s/ M. v7 k" X
{
if(Node->Item[j]->Count==0); 5 L0 m4 M2 c/ |- K7 M
{
if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) 7 B- F; k( P. y2 [* t9 x1 z
{
do - t' ]' W5 O4 x& K6 G
{
//Node->Item[j]->ImageIndex=5; " ]5 u: a) S3 ^- ^9 f# }
//Node->Item[j]->SelectedIndex=4; " O& e0 q# T2 p/ G' M
if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..")
{
Node->Item[j]->ImageIndex=0;
Node->Item[j]->SelectedIndex=4;
TreeView1->Items->AddChild(Node->Item[j],sr.Name); 8 t0 t6 E: C, W+ v
}
} ) `+ |$ W( a" I+ b' x5 ?7 \
while (FindNext(sr)==0); / Z( I6 Z$ V5 ]' p4 O
FindClose(sr);
} ' Q) `0 U& K8 }% B
}
}
Screen->Cursor=crDefault; # q. x8 u9 C8 }
}
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |