ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »