Всё в этом мире уже когда где то происходило, но при всём при этом обращаюсь за помощью.
Задача до боли проста - это часть каталога диска надо поместить в компонент TreeView(
только папки,без файлов). Используя собственные знание и интернет практически решена, но структура выводится не в том порядке в каком надо. Если кому не трудно, укажите нерадивому, то биш мне, ошибку в коде,
А ТО ВРЕМЯ ЖМЁТ НЕЩАДНО, ЗАРАНЕЕ БЛАГОДАРЕН.
Перелопатил инет, ответа не нашёл.
Вот собственно и сам код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString Src;
TTreeNode *Node;
AnsiString Dir1;
int n=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Dir1 = "D:\\" ;
int n=0;
TreeView1->Items->Add(NULL,Dir1);
Node=Form1->TreeView1->Items->Item[n];
CreateTreeView(Dir1, Node);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CreateTreeView(AnsiString Dir, TTreeNode *Root)
{
TSearchRec sr;
Src = Dir;
if (FindFirst(Src+"\\*", faAnyFile, sr) == 0)
{
do
{
if (sr.Name!=".")
if (sr.Name!="..")
{
Dir = Src+"\\"+sr.Name;
Root = TreeView1->Items->AddChild(Root,sr.Name);
//
CreateTreeView(Dir, Root); // РЕКУРСИВНЫЙ ВЫЗОВ
n++;
}
} while (FindNext(sr) == 0);
FindClose(sr);
}
}
надо в файл Unit1.h добаввить:
void __fastcall CreateTreeView(AnsiString Dir, TTreeNode *Root);