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 или поиск по форуму использовать.
|
|