Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 10

Поиск и удаление файлов

12.08.2011, 09:02. Показов 9011. Ответов 22

Студворк — интернет-сервис помощи студентам
Ребят кто может помочь с прогой.
Нужно просто чтоб она одним нажатием на кнопку удаляла все файлы по заданному макету(а точнее по расширению)
вот мой вариант но он почемуто не удаляет файлы

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var
  Form1: TForm1;
   endval: Integer;
   fn: TSearchRec;
   Finds: Integer;
   i: Integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Finds := FindFirst ('j:\*.dsc', faAnyFile, fn);
Finds := Random (2);
if Finds = 1 then deleteFile ('*.dsc');
if Finds = 0 then
begin
for i := 1 to endval do
begin
Finds := FindNext (fn);
if i = endval - 3 then deleteFile ('*.dsc');
end;
end;
FindClose (fn);
end;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.08.2011, 09:02
Ответы с готовыми решениями:

Поиск и удаление файлов
Есь процедура, тестирую ее на Windows XP и даже работает. Но почему она не работает на Widows Server 2003? Она не только не удаляет но...

Поиск и удаление файлов по маске
Доброго времени суток! Поймал вирус, удалил его, но остались следы : в каждой папке и подпапках лежат копии вируса (a.exe) , и мои файлы,...

Работа с файловой системой. Поиск файлов, удаление файл размер которого превышает 100 килобайт
Всем привет! Помогите пожалуйста! Вообщем необходимо реализовать программу , которая будет содержать модуль иерархического поиска файлов...

22
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 10
12.08.2011, 14:35  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mawrat Посмотреть сообщение
В коде удаление всех искомых файлов производится из папки FilesToDel и из всех её подпапок. При этом сама папка FilesToDel лежит в папке, где расположен исполняемый файл программы.
я взял только последние строчки с удалением и дописал дедостающие вверху все равно не пашет
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
12.08.2011, 14:52
Я проверял - программа верно отрабатывает. Прикладываю проект. В папке проекта лежат папки для проверки.
Последняя версия кода:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
procedure EnumFiles(const aPath, aMask : String; const aAttr : Integer;
  const aArrExt : array of String; aSl : TStringList);
var
  Sr : TSearchRec;
  i, Attr : Integer;
  sMask, sPath, sExt : String;
begin
  //Маска.
  sMask := aMask;
  if aMask = '' then sMask := '*';
  //Путь к папке. Добавляем к пути завершающий слеш, если его нет.
  sPath := IncludeTrailingPathDelimiter(aPath);
  //Добавляем атрибут папок.
  Attr := aAttr or faDirectory;
 
  try
    if FindFirst(sPath + sMask, Attr, Sr) = 0 then repeat
      //Если найдена папка, то выполняем для неё рекурсивный вызов.
      if faDirectory = (Sr.Attr and faDirectory) then begin
        //Пропускаем ссылки на текущий и родительский каталоги.
        if (Sr.Name = '.') or (Sr.Name = '..') then Continue;
        //Добавляем сведения о папке:
        //aSl.Add('Папка: ' + Sr.Name);
        //Рекурсивный вызов.
        EnumFiles(sPath + Sr.Name + '\', sMask, aAttr, aArrExt, aSl);
        Continue;
      end;
      //Расширение найденного файла.
      sExt := AnsiUpperCase( ExtractFileExt(Sr.Name) );
      //Принадлежит ли расширение списку заданных расширений.
      for i := 0 to High(aArrExt) do begin
        if sExt = aArrExt[i] then Break;
      end;
      if i > High(aArrExt) then Continue;
      //Добавляем найденный файл в список.
      //aSl.Add(Sr.Name);
      aSl.Add(sPath + Sr.Name);
    until FindNext(Sr) <> 0;
    FindClose(Sr);
  except
    on e : Exception do begin
      FindClose(Sr);
      Raise;
    end;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
const
  //Список допустимых расширений.
  ArrExt : array[1..2] of String = ('.TXT', '.CSV');
var
  i, Attr : Integer;
  S, sMask, sPath : String;
  Sl : TStringList;
begin
  sMask := '*';
  //Допустимые атрибуты - любые, кроме папок и томов.
  Attr := faAnyFile - faDirectory - faVolumeID;
  //Путь к папке, в которой будет проходить поиск.
  //Здесь выбрана папка, в которой лежит исполняемый файл программы.
  sPath := ExtractFilePath(ParamStr(0)) + 'Files\';
 
  Memo1.Lines.Add('--------------------------------------------------');
  Memo1.Lines.Add('Папка: "' + sPath + '"');
  Memo1.Lines.Add('Маска: "' + sMask + '"');
  Memo1.Lines.Add('Допустимые расширения:');
  S := '';
  for i := Low(ArrExt) to High(ArrExt) do begin
    if i > Low(ArrExt) then S := S + ', ';
    S := S + '"' + ArrExt[i] + '"';
  end;
  Memo1.Lines.Add(S);
  Memo1.Lines.Add('Список найденных файлов:');
 
  Sl := TStringList.Create;
  try
    EnumFiles(sPath, sMask, Attr, ArrExt, Sl);
  except
    on e : Exception do begin
      Memo1.Lines.Add('Выполнение прервано из-за ошибки.');
      Memo1.Lines.Add('Сведения об ошибке:');
      Memo1.Lines.Add(e.Message);
    end;
  end;
 
  //Список найденных файлов помещаем в мемо.
  Memo1.Lines.AddStrings(Sl);
  //Удаляем список из памяти.
  FreeAndNil(Sl);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
const
  //Список допустимых расширений.
  ArrExt : array[1..1] of String = ('.DSC');
var
  i, Attr : Integer;
  S, sMask, sPath : String;
  Sl : TStringList;
begin
  sMask := '*';
  //Допустимые атрибуты - любые, кроме папок и томов.
  Attr := faAnyFile - faDirectory - faVolumeID;
  //Путь к папке, в которой будет проходить поиск.
  //Здесь выбрана папка, в которой лежит исполняемый файл программы.
  sPath := ExtractFilePath(ParamStr(0)) + 'FilesToDel\';
 
  Memo1.Lines.Add('--------------------------------------------------');
  Memo1.Lines.Add('Папка: "' + sPath + '"');
  Memo1.Lines.Add('Маска: "' + sMask + '"');
  Memo1.Lines.Add('Допустимые расширения:');
  S := '';
  for i := Low(ArrExt) to High(ArrExt) do begin
    if i > Low(ArrExt) then S := S + ', ';
    S := S + '"' + ArrExt[i] + '"';
  end;
  Memo1.Lines.Add(S);
 
  Sl := TStringList.Create;
  try
    EnumFiles(sPath, sMask, Attr, ArrExt, Sl);
  except
    on e : Exception do begin
      Memo1.Lines.Add('Выполнение прервано из-за ошибки.');
      Memo1.Lines.Add('Сведения об ошибке:');
      Memo1.Lines.Add(e.Message);
    end;
  end;
 
  //Удаление найденных файлов.
  Memo1.Lines.Add('Удаление файлов:');
  for i := 0 to Sl.Count - 1 do begin
    if DeleteFile(Sl[i]) then
      Memo1.Lines.Add('Удалён файл: "' + Sl[i] + '"')
    else
      Memo1.Lines.Add('Не удалось удалить файл: "' + Sl[i] + '"')
  end;
 
  //Удаляем список из памяти.
  FreeAndNil(Sl);
end;
Вложения
Тип файла: rar SearchAndProcFiles.rar (171.7 Кб, 66 просмотров)
1
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 10
12.08.2011, 15:11  [ТС]
Спасибо огромное. Век не забуду. Работает. Осталось только переписать под требуемые места и необходимые расширения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2011, 15:11

Поиск и удаление файлов средствами delphi
Приветствую всех! Есть задача: На диске C: найти файл samantha is gonna kill you.mp3 и его удалить, и нужно делать программно. ...

Поиск и удаление файлов
Приветствую всех! Есть задача: На диске C: найти файл samantha is gonna kill you.mp3 и его удалить, и нужно делать программно. ...

Поиск и удаление файлов
Приветствую всех! Есть задача: На диске C: найти файл samantha is gonna kill you.mp3 и его удалить, и нужно делать программно. ...

Поиск и удаление файлов
Добрый день! Помогите пожалуйста составить программу,а то я новичок в VB6. Суть программй в том что есть папка &quot;документы&quot;...

Поиск и удаление файлов
Добрый день. Есть код. int n = 0; //Переменная для счётчика строк в файле списке try { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru