Проектирование параллельных алгоритмов в задачах идентификации. Вашкевич Н.П - 23 стр.

UptoLike

23
ла. Тексты программных модулей для среды программирования C++Builder 3.0 приведе-
ны в приложении 2.
Для просмотра содержимого каталога можно использовать функции из Win32 API.
Для этого в программном интерфейсе Microsoft Windows NT (Windows 95) предусмотре-
ны функции FindFirstFile, FindNextFile и FindClose. Просмотр каталога с помощью этих
функций выполняется в цикле. Перед началом цикла вызывается функция FindFirstFile:
HANDLE FindFirstFile(
LPCTSTR lpFileName, //адрес пути для поиска
LPWIN32_FIND_DATA lpFindFileData); //адрес структуры WIN32_FIND_DATA, куда
будет записана информация о файлах
Через параметр lpFileName передается адрес строки, содержащей путь к каталогу и
шаблон для поиска. В шаблоне можно использовать символы "?" и "*". Через параметр
lpFindFileData передается адрес структуры типа WIN32_FIND_DATA, в которую будет
записана информация о найденных файлах. Эта структура определена следующим обра-
зом:
typedefstruct WIN32_FIND_DATA
{
DWORD dwFileAttributes; // атрибуты файла
FILETIMEftCreationTime; // время создания файла
FILETIMEftLastAccessTime; // время доступа
FILETIMEftLastWriteTime; // время записи
DWORD nFileSizeHigh; // размер файла (старшее слово)
DWORD nFileSizeLow; // размер файла (младшее слово)
DWORD dwReserved0; // зарезервировано
DWORD dwReserved1; // зарезервировано
TCHAR cFileName[MAX_PATH]; //имя файла
TCHAR cAlternateFileName[14]; // альтернативное имя файла
} WIN32_FIND_DATA;
Если поиск завершился успешно, функция FindFirstFile возвращает идентификатор
поиска, который будет использован в цикле при вызове функции FindNextFile. При
ошибке возвращается значение INVALID_HANDLE_VALUE. Учтите, что поля
cFileName и cAlternateFileName структуры WIN32_FIND_DATA содержат соответст-
венно длинное имя файла и короткое, альтернативное имя файла "в формате 8.3".
После вызова функции FindFirstFile вы должны выполнить в цикле вызов функции
FindNextFile:
ВOOL FindNextFile (
HANDLE hFindFile, // идентификатор поиска
LPWIN32_FIND_DATA lpFindFileData); //адрес структуры WIN32_FIND_DATA
Через параметр
hFindFile этой функции следует передать идентификатор поиска,
полученный от функции
FindFirstFile. Что же касается параметра lpFindFileData, то че-
рез него вы должны передать адрес той же самой структуры типа WIN32_FIND_DATA,
что была использована при вызове функции FindFirstFile.
Если функция FindNextFile завершилась успешно, она возвращает значение TRUE.
При ошибке возвращается значение FALSE. Код ошибки вы можете получить от функции
GetLastError. В том случае, когда были просмотрены все файлы в каталоге, эта функция
ла. Тексты программных модулей для среды программирования C++Builder 3.0 приведе-
ны в приложении 2.
      Для просмотра содержимого каталога можно использовать функции из Win32 API.
Для этого в программном интерфейсе Microsoft Windows NT (Windows 95) предусмотре-
ны функции FindFirstFile, FindNextFile и FindClose. Просмотр каталога с помощью этих
функций выполняется в цикле. Перед началом цикла вызывается функция FindFirstFile:
HANDLE FindFirstFile(
LPCTSTR lpFileName, //адрес пути для поиска
LPWIN32_FIND_DATA lpFindFileData); //адрес структуры WIN32_FIND_DATA, куда
будет записана информация о файлах
      Через параметр lpFileName передается адрес строки, содержащей путь к каталогу и
шаблон для поиска. В шаблоне можно использовать символы "?" и "*". Через параметр
lpFindFileData передается адрес структуры типа WIN32_FIND_DATA, в которую будет
записана информация о найденных файлах. Эта структура определена следующим обра-
зом:
      typedefstruct WIN32_FIND_DATA
      {
      DWORD dwFileAttributes; // атрибуты файла
      FILETIMEftCreationTime; // время создания файла
      FILETIMEftLastAccessTime; // время доступа
      FILETIMEftLastWriteTime; // время записи
      DWORD nFileSizeHigh;        // размер файла (старшее слово)
      DWORD nFileSizeLow;          // размер файла (младшее слово)
      DWORD dwReserved0;          // зарезервировано
      DWORD dwReserved1;          // зарезервировано
      TCHAR cFileName[MAX_PATH]; //имя файла
      TCHAR cAlternateFileName[14]; // альтернативное имя файла
      } WIN32_FIND_DATA;
      Если поиск завершился успешно, функция FindFirstFile возвращает идентификатор
поиска, который будет использован в цикле при вызове функции FindNextFile. При
ошибке возвращается значение INVALID_HANDLE_VALUE. Учтите, что поля
cFileName и cAlternateFileName структуры WIN32_FIND_DATA содержат соответст-
венно длинное имя файла и короткое, альтернативное имя файла "в формате 8.3".
      После вызова функции FindFirstFile вы должны выполнить в цикле вызов функции
FindNextFile:
      ВOOL FindNextFile (
      HANDLE hFindFile, // идентификатор поиска
      LPWIN32_FIND_DATA lpFindFileData); //адрес структуры WIN32_FIND_DATA

      Через параметр hFindFile этой функции следует передать идентификатор поиска,
полученный от функции FindFirstFile. Что же касается параметра lpFindFileData, то че-
рез него вы должны передать адрес той же самой структуры типа WIN32_FIND_DATA,
что была использована при вызове функции FindFirstFile.
      Если функция FindNextFile завершилась успешно, она возвращает значение TRUE.
При ошибке возвращается значение FALSE. Код ошибки вы можете получить от функции
GetLastError. В том случае, когда были просмотрены все файлы в каталоге, эта функция



                                         23