C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
удаление файлов
lll
Отправлено: 03.06.2004, 05:58


Не зарегистрирован







Как средствами Builder'а удалить несколько файлов или полностью очистить диск(дискету)?
timson
  Отправлено: 03.06.2004, 06:58


Станционный диспетчер

Группа: Участник
Сообщений: 82



функции для удаления файлов:
stdio.h:
int remove(char *filename);
win32 API:
VOID RemoveFile(LPSTR szFullPathSrc, INT cmo);

BOOL DeleteFile(
LPCTSTR lpFileName // pointer to name of file to delete
);

remove че-то не удаляет по шаблону.. тупо..
поройся в хелпе..
если под винду пишешь лучше используй API, и ищи в MSDN..
AVC
Отправлено: 03.06.2004, 08:43


Ветеран

Группа: Модератор
Сообщений: 1583



Вопрос неоднократно задавался на форумах можно было поискать.
Например так:
CODE

#include "stdio.h"
void EraseFiles(AnsiString path)
// оставляет структуру каталогов
// не удаляет readonly файлы
{
TSearchRec sr;
FILE *fp;

for (int ferr = FindFirst(path+"*.*", faAnyFile, sr); ferr == 0; ferr=FindNext(sr))
{ if (sr.Attr & faDirectory)
    { if (sr.Name == ".")  continue;
       else if (sr.Name == "..") continue;
       else EraseFiles(path+sr.Name+"\");
       continue;
    } // faDirectory

  DeleteFile(path+sr.Name);
}

FindClose(sr);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
EraseFiles("F:\Temp\aaa\");
}

Небольшая модификация кода и неправильный вызов функции оставляет после себя чистый диск.
Gedeon
Отправлено: 03.06.2004, 08:50


Ветеран

Группа: Модератор
Сообщений: 1742



В MSDN смотреть SHFileOperation или поиск по форуму использовать. cool.gif

Вернуться в Вопросы программирования в C++Builder