как осуществить поиск файлов?

Тема в разделе "WASM.WIN32", создана пользователем test896, 29 апр 2009.

  1. test896

    test896 New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2009
    Сообщения:
    132
    Привет! всем!
    какой функцией winapi можно осуществлять поиск файлов?
     
  2. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Функцией UseGoogle, а также функцией SearchOnThisForum.
     
  3. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    FindFirstFile/FindNextFile/FindClose
     
  4. SlyBit

    SlyBit New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2008
    Сообщения:
    43
    FindFirstFile
    FindNextFile
    FindClose
     
  5. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    Пересчет файлов по маске

    Код (Text):
    1. start proc
    2.         invoke FindFirstFile, addr pszTextMask, addr lpFindFileData
    3.         mov hFindFirst, eax
    4.         .if eax != INVALID_HANDLE_VALUE
    5.            
    6.             inc byte ptr [counter]
    7.        
    8.             .while TRUE
    9.                 invoke FindNextFile, hFindFirst, addr lpFindFileData
    10.                 .if !eax
    11.                     .break
    12.                 .endif
    13.                 inc byte ptr [counter]
    14.             .endw
    15.         .endif
    16.        
    17.         invoke wsprintf, addr lpBuffer1, addr szMessage, counter
    18.         invoke MessageBox, 0, addr lpBuffer1, 0, 0
    19.  
    20.         xor eax, eax
    21.         ret
    22. start endp
    23.  
    24. end start
     
  6. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    вверху
    Код (Text):
    1. .data?
    2.     lpFindFileData WIN32_FIND_DATA  <?>
    3.     hFindFirst dd ?
    4. .data
    5.     pszTextMask db "*.exe",0
    6.     counter dd 0
    7.     szMessage db "Количество найденых файлов, %i",0
    8.     lpBuffer1   db  250
    9. .code
     
  7. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Первый пост дал самый правильный ответ! А еще нужно флаг MOSK в 1 установить! Тогда все пучком будет.
     
  8. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    JCronos
    В вашем примере - нет FindClose().
     
  9. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    AsmGuru62 Спасибо за наблюдательность :)

    start proc
    invoke FindFirstFile, addr pszTextMask, addr lpFindFileData
    mov hFindFirst, eax
    .if eax != INVALID_HANDLE_VALUE

    inc byte ptr [counter]

    .while TRUE
    invoke FindNextFile, hFindFirst, addr lpFindFileData
    .if !eax
    .break
    .endif
    inc byte ptr [counter]
    .endw
    .endif

    invoke FindClose, hFindFirst
    invoke wsprintf, addr lpBuffer1, addr szMessage, counter
    invoke MessageBox, 0, addr lpBuffer1, 0, 0

    xor eax, eax
    ret
    start endp

    end start
     
  10. test896

    test896 New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2009
    Сообщения:
    132
    спасибо, попробую разобраться