Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Удаление определенных файлов из директории


Автор: henzo 28.2.2010, 02:31
Например есть у нас в папке файлы 1.txt, 1s.txt, 56.txt, 56i.txt.
После цифр идет только одна буква.
Вот нужно удалить все файлы, в которых присутствуют буквы и оставить только 1.txt, 56.txt итд.
Сейчас я удаляю все это через стандартный поиск виндовс через поиск-*a.txt, *b.txt но сами понимаете способ ###, но к сожалению это лучшее из того, что я придумал. Посоветуйте пожалуйста что нибудь.

Автор: THandle 28.2.2010, 13:00
henzo, ну если файлов немного, то можно перебирать их FindFirst/Next, потом проверять содержит ли их имя букву(можно просто пробуя преобразовать а число(но тут и всякие - в имени файла не преобразуются), либо поиском в имени буквы... Но это довольно медленные проверки и на огромных папках я бы такой метод наверное не рискнул бы применить. 

Автор: henzo 28.2.2010, 13:57
да в этом то и дело что файлов много, ручками я конечно сейчас перебираю, но времени это не хило отнимает

Автор: Dom 28.2.2010, 14:02
Или такой вариант, если формат имен файлов только такой и никак иначе, то можно проверять код пятого с конца символа, если он не попадает в диапазон чисел, то файл удалять.

Автор: Данкинг 28.2.2010, 14:06
Ну дык, отбрасываешь расширение и делаешь цикл по длине строки, перебирая её символы. Если не цифра - то цикл тормозим и файл грохаем. smile 

Автор: Snowy 1.3.2010, 13:45
Код
  if TryStrToInt(copy(fname, 1, Length(fname) - Length(ExtractFileExt(fname))), i) then

где i - integer, а fname - имя файла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)