Магазин спортивного харчування Strong Life
Дерево благодарностей1Благодарности
  • 1 Сообщение от rust
+ Ответить в теме
Показано с 1 по 9 из 9.
  1. #1
    Offline
    VPN
    Lol

    как найти все файлы во всех папках?


    как найти все файлы во всех папках? Например на Диске С:\

    Помогите нужен исходник

  2. #2
    Offline
    Инвалид умственного труда

    Re: как найти все файлы во всех папках?


    find / -name "*.*" -print

    dir /S c:\

    Исходник зачем? В паскакале нет такой компанеты?
    Нужен алгоритм все просто
    Открываем исходник find и вдумчиво читаем. Если у вас другая операционка то открываем файл содержащий команду dir в дизасемблере.
    В обеих случаях ключевое словосочетание "вдумчивое чтение".

    ЗЫ велик зачем изобретать?
  3. #3
    Offline
    модератор

    Re: как найти все файлы во всех папках?


    Vanl2mx, ПУСК-ПОИСК-ФАЙЛЫ И ПАПКИ- задаём маску "*" (без кавычек). если нужно, отмечаем в ДОПОЛНИТЕЛЬНЫХ ПАРАМЕТРАХ галочкой ПОИСК В СИСТЕМНЫХ И СКРЫТЫХ ФАЙЛАХ
  4. #4
    Offline
    part of me

    Re: как найти все файлы во всех папках?


    Питання не в тому, як знайти файли на диску з експлорера, а в тому, як отримати список файлів за маскою за допомогою мови Delphi.
  5. #5
    Offline
    модератор

    Re: как найти все файлы во всех папках?


    Офтоп:
    Упс, сорри, не посмотрел в каком раздлеле тема:)
  6. #6
    Offline
    VPN

    Re: как найти все файлы во всех папках?


    Ответ Сообщение от fragov Посмотреть сообщение
    Питання не в тому, як знайти файли на диску з експлорера, а в тому, як отримати список файлів за маскою за допомогою мови 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';
  7. #7
    Offline
    Инвалид умственного труда

    Re: как найти все файлы во всех папках?


    Ответ Сообщение от fragov Посмотреть сообщение
    Питання не в тому, як знайти файли на диску з експлорера, а в тому, як отримати список файлів за маскою за допомогою мови Delphi.
    Чем dir /S c:\не устраивает
    Перенаправляем список либо в файл либо в массив и делаем дальше с ним что угодно.
  8. #8
    Offline
    Инвалид умственного труда

    Re: как найти все файлы во всех папках?


    Получилось? Или таки нужных компонент не было?

    Кто то сообщит что быстрее, более 30 срок на паскакале и одна системная команда?
  9. #9
    Offline
    Зануда

    Re: как найти все файлы во всех папках?


    Ответ Сообщение от rust Посмотреть сообщение
    Кто то сообщит что быстрее, более 30 срок на паскакале и одна системная команда?
    Я предпочел бы 30 строк на паскале (или все равно на чем), т.к. в случае с применением системной команды:

    * получаем "сырой текст", который нужно еще парсить, чтобы извлечь нужные данные.
    * результат работы DIR может, хотя и незначительно, отличаться в зависимости от версии Windows. Опять же парсить.
    * применяя FindFirst, FindFiles сразу получаем в TSearchRec кучу дополнительной информации, которая может понадобиться.

    Собственно, так я и поступал, только реализовывал на C++ и несколько короче. А вообще - дело вкуса. Не думаю, что dir /S c:\ - такая уж "молниеносная".
+ Ответить в теме

Похожие темы

  1. Всех Обосрал Glory Mc
    Алкаш в разделе Rap/Hip-Pop
    Ответов: 16
    Последнее сообщение: 29.05.2011, 14:19
  2. Ответов: 19
    Последнее сообщение: 30.03.2011, 13:06
  3. где найти свою половинку????
    Romero в разделе Стосунки, Кохання, Романтика
    Ответов: 42
    Последнее сообщение: 05.07.2009, 23:18
  4. Ответов: 0
    Последнее сообщение: 12.11.2008, 21:24

Теги для этой темы