Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Проблема с удалением папок (https://forum.antichat.xyz/showthread.php?t=82656)

_nic 28.08.2008 00:33

Проблема с удалением папок
 
Использую Borland Developer Studio 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:

slesh 28.08.2008 09:42

Как вариант попробуй зающать алгоритм рекурсивного удаления каталога.
Или на крайняк почитай вот тут вот обсуждался этот вопрос и было найдено решение.
hxxp://www.sources.ru/NonCGI/Forum2/HTML/002353.html

_nic 28.08.2008 14:57

Как оказалось надо было всего лишь это
Код:

buf+='\0';
добавить что бы заработало.
_______________________________
блин я в абсолютном шоке :eek: Никогда такого невидел :mad: То абсолютно нормально все каталоги отрабатывает ,то какого то всеравно ругается что нельзя получить доступ к файлу :confused:

o_OBallers 29.08.2008 16:04

Файлы поди read-only, вначале ставь нужный атрибут на все файлы и папки, а потом только удаляй. Как вариант удаляй с помощью shell.

Рукодельник.

_nic 29.08.2008 21:17

Бли вообще фигня какае то ,папка удаляется а месседжбокс с матюком всеравно вылазит.Может можно как то его отловить и ОК на нем програмно нажать?

ExZoD 30.08.2008 00:24

на какой конкретно строке материться?

_nic 30.08.2008 13:24

Цитата:

Сообщение от ExZoD
на какой конкретно строке материться?

Хрен знает какое исключение которое обрабатывается внутри самой SHFileOperation ,что тут неясного?


Время: 11:23