Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление файлов. [D5, Win95/98]


sammy ©   (2002-02-07 08:38:00) 

Мне необходимо удалить файлы в определенной папке.
проблема в том, что их имена и типы неизвестны.
findfirst и findnext-ом у меня ничего не выходит.
памагите люди добрые!


DOS Session   (2002-02-07 11:34:00) [1]

amamed_3071 © (07.02.02 11:20)

Я дико извиняюсь конечно, но это:
WINEXEC("DEL C:\FOLDERNAME\FOLDER2\*.*");
нельзя назвать правильным советом
1. Если уж пишете пример использования функции с параметрами, то параметры желательно ставить ВСЕ.
2. Если собираетесь использовать DOS-овскую функцию, то безусловно ее запуск должен происходить ПРАВИЛЬНО:
c:\command.com /c функция
3. Если в указанной папке окажется более 1000 файлов например, то не замучаетесь ли Вы подтверждать удаление каждого ? Безусловно при таком методе нужно ставить команду
DELTREE /Y *.*

4. И зачем вообще переходить на DOS там где значительно проще реализовать все WIN-дусовыми методами по примеру Леонид Федьков (07.02.02 11:04)


amamed_3071   (2002-02-07 11:20:00) [2]

WINEXEC("DEL C:\FOLDERNAME\FOLDER2\*.*");


Леонид Федьков   (2002-02-07 11:04:00) [3]

Это проверено и работает !


procedure TDataModule1.EmptyDir(Const Path : String);
{Удаление всех файлов из каталога}
var
SearchRec: TSearchRec;
Found : Integer;
If_tmp : array[0..80] of Char;
begin
Found := FindFirst(Path+"*.*", faAnyFile, SearchRec);
while Found = 0 do
begin
StrPCopy(If_tmp,Path+SearchRec.Name);
DeleteFile(If_tmp);
Found := FindNext(SearchRec);
end;
FindClose(SearchRec);
end;


vl_chel   (2002-02-07 10:51:00) [4]

FindFirst(RootPath+"\*.*", ....


Chris   (2002-02-07 08:52:00) [5]

ты хоть определись, что ты хочешь...
Могу предложить такой набросок.
RootPath - путь к определенной папке с конечным backslash
ListBox1.Items - список файлов-смертников
TSR: TSearchRec;

for i:=0 to ListBox1.Items.Count-1 do
if FindFirst(RootPath+ListBox1.Items.Strings[i],$3F,TSR)=0 then
DeleteFile(RootPath+ListBox1.Items.Strings[i])
else
ListBox1.Items.Strings[i]:="Файл не найден "+ListBox1.Items.Strings[i];


panov   (2002-02-07 08:46:00) [6]

Приводи пример кода, который не работает...


Наверх

Титульная страница Поиск, карта сайта Написать письмо