Код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
int __fastcall TForm1::ListDirItems(char *dir, char *mask)
{
WIN32_FIND_DATA DIR={0};
HANDLE hFile=0;
BOOL done=TRUE;
char dirname[128]={0};
TCHAR LevelUp='.';
int ItemCount=0;
char fullpath[256]={0};
AnsiString TempString;
strcpy(dirname,dir);
strcat(dirname,mask);
hFile=FindFirstFile(dirname, &DIR);
while(done)
{
if (! (DIR.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
if (DIR.cFileName[0] != LevelUp && DIR.cFileName[0] != 0)
{
ItemCount++;
GlobalFiles++;
strcpy(fullpath, "íàéäåí - ");
strcat(fullpath, dir);
strcat(fullpath, DIR.cFileName);
ListBox1->Items->Add(fullpath);
Edit3->Text=TempString.sprintf("%d",GlobalFiles);
}
}
else
{
ItemCount++;
}
done=FindNextFile(hFile, &DIR);
}
return ItemCount;
}
int __fastcall TForm1::DelListDirItems(char *dir, char *mask)
{
WIN32_FIND_DATA DIR={0};
HANDLE hFile=0;
BOOL done=TRUE;
char dirname[128]={0};
TCHAR LevelUp='.';
int ItemCount=0;
char fullpath[256]={0};
AnsiString TempString;
char DelStr[256]={0};
strcpy(dirname,dir);
strcat(dirname,mask);
hFile=FindFirstFile(dirname, &DIR);
while(done)
{
if (! (DIR.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
if (DIR.cFileName[0] != LevelUp && DIR.cFileName[0] != 0)
{
ItemCount++;
GlobalFiles++;
strcpy(fullpath, "óäàëåí - ");
strcpy(DelStr, dir);
strcat(DelStr, DIR.cFileName);
if(DeleteFile(DelStr)==0)
{
strcat(fullpath, "[ÎØÈÁÊÀ] - ");
}
strcat(fullpath, dir);
strcat(fullpath, DIR.cFileName);
ListBox1->Items->Add(fullpath);
Edit3->Text=TempString.sprintf("%d",GlobalFiles);
}
}
else
{
ItemCount++;
}
done=FindNextFile(hFile, &DIR);
}
return ItemCount;
}
void __fastcall TForm1::ListDir(char *dir, char *maskdir, char *maskfile, int fd)
{
WIN32_FIND_DATA DIR={0};
HANDLE hFile=0;
BOOL done=TRUE;
char dirname[128]={0};
TCHAR LevelUp='.';
int NumberOfItems=0;
strcpy(dirname,dir);
strcat(dirname,maskdir);
hFile=FindFirstFile(dirname, &DIR);
while(done)
{
if (DIR.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (DIR.cFileName[0] != LevelUp)
{
NodeCount++;
char dirname2[256]={0};
strcpy(dirname2,dir);
strcat(dirname2,DIR.cFileName);
strcat(dirname2, "\\");
if(fd==0)
NumberOfItems=ListDirItems(dirname2, maskfile);
else
NumberOfItems=DelListDirItems(dirname2, maskfile);
ListDir(dirname2, maskdir, maskfile, fd);
}
}
done=FindNextFile(hFile, &DIR);
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
NodeCount=0;
GlobalFiles=0;
ListBox1->Items->Clear();
char Text1[128]={0};
char Text2[128]={0};
strcpy(Text1,Edit1->Text.c_str());
strcpy(Text2,Edit2->Text.c_str());
ListDirItems(Edit1->Text.c_str(), Edit2->Text.c_str());
ListDir(Edit1->Text.c_str(), "*.*", Edit2->Text.c_str(), 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
NodeCount=0;
GlobalFiles=0;
ListBox1->Items->Clear();
char Text1[128]={0};
char Text2[128]={0};
strcpy(Text1,Edit1->Text.c_str());
strcpy(Text2,Edit2->Text.c_str());
DelListDirItems(Edit1->Text.c_str(), Edit2->Text.c_str());
ListDir(Edit1->Text.c_str(), "*.*", Edit2->Text.c_str(), 1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
NodeCount=0;
GlobalFiles=0;
}