char *flnames=new char[1024*1024];
void dlfls(void)
{
char *buf=new char[1024*1024];
for(;;)
{
strcpy(buf,flnames);
strtok(buf,"\n");
//strcat(buf,"\\");
ShowMessage(buf);
int res;
SHFILEOPSTRUCT fo;
ZeroMemory(&fo, sizeof(fo));
fo.hwnd = 0;
fo.pFrom = buf;
fo.wFunc = FO_DELETE;
fo.fFlags = FOF_NOCONFIRMATION;
res = SHFileOperation(&fo);
flnames+=strlen(buf);
if(strlen(flnames)==0){break;}
memset(buf,NULL,1024*1024);
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
memset(flnames,NULL,1024*1024);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString Directory;
SelectDirectory("",WideString(""),Directory);
strcat(flnames,Directory.c_str());
strcat(flnames,"\n");
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
dlfls();
}
Проблема с удалением папок
Код:
Выскакивает мессагбокс с матюком что нельзя произвети чтение с файла или с диска.Немогу понять в чем дело :( Ведь список папок составляется и разбирается нормально.Чего может ненравится SHFileOperation :confused:
Цитата: _nic
Немогу заставить работать вот такой код
Выскакивает мессагбокс с матюком что нельзя произвети чтение с файла или с диска.Немогу понять в чем дело :( Ведь список папок составляется и разбирается нормально.Чего может ненравится SHFileOperation :confused:
Код:
char *flnames=new char[1024*1024];
void dlfls(void)
{
char *buf=new char[1024*1024];
for(;;)
{
strcpy(buf,flnames);
strtok(buf,"\n");
//strcat(buf,"\\");
ShowMessage(buf);
int res;
SHFILEOPSTRUCT fo;
ZeroMemory(&fo, sizeof(fo));
fo.hwnd = 0;
fo.pFrom = buf;
fo.wFunc = FO_DELETE;
fo.fFlags = FOF_NOCONFIRMATION;
res = SHFileOperation(&fo);
flnames+=strlen(buf);
if(strlen(flnames)==0){break;}
memset(buf,NULL,1024*1024);
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
memset(flnames,NULL,1024*1024);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString Directory;
SelectDirectory("",WideString(""),Directory);
strcat(flnames,Directory.c_str());
strcat(flnames,"\n");
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
dlfls();
}
void dlfls(void)
{
char *buf=new char[1024*1024];
for(;;)
{
strcpy(buf,flnames);
strtok(buf,"\n");
//strcat(buf,"\\");
ShowMessage(buf);
int res;
SHFILEOPSTRUCT fo;
ZeroMemory(&fo, sizeof(fo));
fo.hwnd = 0;
fo.pFrom = buf;
fo.wFunc = FO_DELETE;
fo.fFlags = FOF_NOCONFIRMATION;
res = SHFileOperation(&fo);
flnames+=strlen(buf);
if(strlen(flnames)==0){break;}
memset(buf,NULL,1024*1024);
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
memset(flnames,NULL,1024*1024);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString Directory;
SelectDirectory("",WideString(""),Directory);
strcat(flnames,Directory.c_str());
strcat(flnames,"\n");
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
dlfls();
}
Выскакивает мессагбокс с матюком что нельзя произвети чтение с файла или с диска.Немогу понять в чем дело :( Ведь список папок составляется и разбирается нормально.Чего может ненравится SHFileOperation :confused:
Код написан небрежно и коряво - специально не считал - но пример как делать не надо тут присуствует. И кстати пример как не надо писать сообщения в форуме тут присутствует тоже. Браво.