Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с удалением папок

841
27 августа 2008 года
_nic
199 / / 29.07.2006
Немогу заставить работать вот такой код
Код:
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:
1
27 августа 2008 года
kot_
7.3K / / 20.01.2000
Цитата: _nic
Немогу заставить работать вот такой код
Код:
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:


Код написан небрежно и коряво - специально не считал - но пример как делать не надо тут присуствует. И кстати пример как не надо писать сообщения в форуме тут присутствует тоже. Браво.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог