как найти все файлы во всех папках? Например на Диске С:\
Помогите нужен исходник![]()
Вы просматриваете тему как найти все файлы во всех папках? в подразделе Delphi, который находится в форуме Программирование; как найти все файлы во всех папках? Например на Диске С:\ Помогите нужен исходник
как найти все файлы во всех папках? Например на Диске С:\
Помогите нужен исходник![]()
find / -name "*.*" -print
dir /S c:\
Исходник зачем? В паскакале нет такой компанеты?
Нужен алгоритм все просто
Открываем исходник find и вдумчиво читаем. Если у вас другая операционка то открываем файл содержащий команду dir в дизасемблере.
В обеих случаях ключевое словосочетание "вдумчивое чтение".
ЗЫ велик зачем изобретать?
Vanl2mx, ПУСК-ПОИСК-ФАЙЛЫ И ПАПКИ- задаём маску "*" (без кавычек). если нужно, отмечаем в ДОПОЛНИТЕЛЬНЫХ ПАРАМЕТРАХ галочкой ПОИСК В СИСТЕМНЫХ И СКРЫТЫХ ФАЙЛАХ
Питання не в тому, як знайти файли на диску з експлорера, а в тому, як отримати список файлів за маскою за допомогою мови Delphi.
Офтоп:
Прямо в точку!![]()
procedure FindFiles(StartFolder, Mask: string; List: TStrings;
ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
List.BeginUpdate;
try
StartFolder := IncludeTrailingBackslash(StartFolder);
FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
try
while FindResult = 0 do
with SearchRec do
begin
if (Attr and faDirectory) <> 0 then
begin
if ScanSubFolders and (Name <> '.') and (Name <> '..') then
FindFiles(StartFolder + Name, Mask, List, ScanSubFolders);
end
else
begin
if MatchesMask(Name, Mask) then
List.Add(StartFolder + Name);
end;
FindResult := FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
List.EndUpdate;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FindFiles('C:\WINDOWS\', '*.exe', memo1.Lines, true);
end;
вот код но мне здесь memo и даром не нада нужно подключить FileListBox
Только не нада писать типа FindFiles('C:\WINDOWS\', '*.exe', FileListBox1.Lines, true); так не работает OurFileCopyName := 'c:\*.exe';
Получилось? Или таки нужных компонент не было?
Кто то сообщит что быстрее, более 30 срок на паскакале и одна системная команда?
Я предпочел бы 30 строк на паскале (или все равно на чем), т.к. в случае с применением системной команды:
* получаем "сырой текст", который нужно еще парсить, чтобы извлечь нужные данные.
* результат работы DIR может, хотя и незначительно, отличаться в зависимости от версии Windows. Опять же парсить.
* применяя FindFirst, FindFiles сразу получаем в TSearchRec кучу дополнительной информации, которая может понадобиться.
Собственно, так я и поступал, только реализовывал на C++ и несколько короче. А вообще - дело вкуса. Не думаю, что dir /S c:\ - такая уж "молниеносная".