Access

  MS Access 2010+  |  Aplication Programming Interface API  |   VBA 7.0



• API. Funkcje zarządzania plikami.

Wyszukiwanie pliku lub folderu o nazwie pasującej do wzorca.

Aby sprawdzić, czy w określonym katalogu istnieje plik lub folder o konkretnej nazwie, lub by wyszukać pliki i foldery pasującej do wzorca lub części nazwy wzorca po zastosowaniu symboli wieloznacznych "?" oraz "*" możemy użyć funkcji FindFirstFile(...). Aby wyszukać następny plik (folder) spełniający wcześniej ustalone kryteria możemy użyć funkcji FindNextFile(...)

Opis funkcji API FindNextFile (...)

Funkcja FindNextFile(...) kontynuje wyszukiwanie plików i folderów, z tymi samymi kryteriami z jakimi wywołano funkcję wyszukującą FindFirstFile(...) która przy powodzeniu, (gdy zostanie znaleziony plik lub folder pasujący do wzorca), zwraca uchwyt wyszukiwania, a w strukturze WIN32_FIND_DATA informacje o znalezionym pliku lub folderze. Aby kontynuować wyszukiwanie zwrócony uchwyt wyszukiwania powinniśmy przekazać do funkcji FindNextFile(...) w celu wyszukania kolejnego pliku lub folderu z zachowanie tych samych kryteriów wyszukiwania.
Gdy kończymy wyszukiwanie należy przekazać uchwyt wyszukiwania do funkcji FindClose(...), która zamknie niepotrzebny już uchwyt wyszukiwania.

Public Declare Function FindNextFile _
	Lib "kernel32" Alias "FindNextFileW" _
	(ByVal hFindFile As Long, _
	lpFindFileData As WIN32_FIND_DATA) As Long
  • argumenty:
    • hFindFile
    • uchwyt wyszukiwania zwrócony przez wywołaną funkcję wyszukującą FindFirstFile(...) umożliwia kontynuowanie wyszukiwanie plików i folderów, z tymi samymi kryteriami które zostały użyte do utworzenia uchwytu wyszukiwania przekazanego w argumencie hFindFile.
    • lpFindFileData
    • Wskaźnik do struktury WIN32_FIND_DATA, zawierającej informacje o znalezionym pliku lub katalogu.
  • zwraca:
  • przy powodzeniu (znalezieniu pliku lub folderu), zwraca wartość różną od Zera, a w strukturze WIN32_FIND_DATA informacje o znalezionym pliku lub folderze. Jeśli funkcja się nie powiedzie, wartość zwracana wynosi ZERO, a zawartość struktury WIN32_FIND_DATA jest nieokreślona. Możemy wtedy sprawdzić właściwość LastDllError obiektu Err. Jeżeli zwrócona wartość równa jest stałej ERROR_NO_MORE_FILES = 18 oznacza to, że nie można znaleźć więcej pasujących plików lub folderów Pozostaje wtedy zamknąć uchwyt wyszukiwania za pomocą funkcji FindClose(...).

Uwagi.

  1. Dokładniejszy opis struktury WIN32_FIND_DATA można znaleźć na stronie Struktura WIN32_FIND_DATA
  2. By zakończyć wyszukiwanie należy zamknąć niepotrzebny już uchwyt wyszukiwania za pomocą funkcji FindClose(...). Nie należy do tego celu stosować funkcji CloseHandle(...).