Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ



 

Поиск файлов в сети можно осуществлять только в общедоступных (shared) папках. Для этого необходимо:

  1. знать IP-адрес компьютера в сети;
  2. знать имена общедоступных ресурсов в сети;
  3. прочитать содержимое каталога;
  4. просканировать файлы, находящиеся в общедоступных папках.

 

Функции, необходимые для осуществления поиска файлов в сети:

GetHostbyName - получает IP-адрес, соответствующий имени данного Internet-хоста.

Описание: string gethostbyname (string hostname)

Возвращает IP-адрес Internet-хоста, специфицированного параметром hostname.

GetHostbyAddr - получает имя Internet-хоста, соответствующее данному IP-адресу

Описание: string gethostbyaddr (string ip_address)

Возвращает имя Internet-хоста, специфицированного параметром ip_address. Если возникает ошибка, возвращает ip_address.

Для получения списка ресурсов локальной сети используются функции:

WNetOpenEnum - начать перечисление,

WNetEnumResource - перечислить ресурсы,

WNetCloseEnum - закончить перечисление.

Эти функции дают список имен серверов, принтеров, и т. д. Для получения информации о конкретном сервере можно воспользоваться функцией NetServerGetInfo.

FindFirstFile - ищет каталог файла, название которого соответствует указанному имени файла. FindFirstFile проверяет имена вложенных каталогов так же как и имена файлов.

Описание: HANDLE FindFirstFile(

LPCTSTR lpFileName, // имя файла

LPWIN32_FIND_DATA lpFindFileData // буфер данных);

lpFileName - указатель на символьную строку, оканчивающуюся символом «\0», которая определяет правильный каталог или путь и имя файла, которое может содержать символы подстановки (* и ?). Если символьная строка заканчивается символом подстановки, точкой или именем каталога, пользователь должен иметь доступ к корневому каталогу и всем вложенным в него каталогам. В версии ANSI этой функции, длина имени ограничена количеством символов, определяемых свойством MAX_PATH.

lpFindFileData - указатель на структуру WIN32_FIND_DATA, которая получает информацию о найденном файле или вложенном каталоге.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - дескриптор поиска, используемый в последующем вызове функции FindNextFile или FindClose.

Если функция завершается ошибкой, возвращаемое значение - INVALID_HANDLE_VALUE. Чтобы получить дополнительные данные об ошибке, используется функция GetLastError.

Замечания

Функция FindFirstFile открывает дескриптор поиска и возвращает информацию о первом файле, имя которого соответствует указанному образцу. Она ищет и длинные и короткие имена файла. После того, как дескриптор поиска был установлен, функция FindNextFile используется, чтобы искать другие файлы, которые соответствуют некоторому шаблону. Когда дескриптор поиска больше не нужен, закройте его, используя функцию FindClose.

В редких случаях, информация об атрибутах файла файловой системы NTFS может быть не текущей, когда Вы вызываете эту функцию. Чтобы получить текущие атрибуты файла NTFS, вызовите функцию GetFileInformationByHandle. Эта функция ищет файлы только по имени; она не может использоваться для поиска на основе атрибута.

Нельзя использовать корневые каталоги как вводимую строку в параметре lpFileName для функции FindFirstFile, с/без заключительного символа (\). Чтобы проверить файлы в корневом каталоге, используется запись вида: "C:\* ", далее, используя функцию FindNextFile просматривается содержимое каталога.

Чтобы получить атрибуты корневого каталога, можно использовать функцию GetFileAttributes.

Аналогично производятся действия с сетевыми ресурсами. Можно использовать для параметра lpFileName форму "\\server\service\*", но нельзя использовать lpFileName, который указывает на ресурс непосредственно, то есть "\\server\service".

Чтобы исследовать какой-либо каталог, а не корневой каталог, используйте соответствующий путь к этому каталогу без завершающего символа (\). Например, аргумент "C:\windows" возвратит информацию о каталоге "C:\windows", а не о каком-либо каталоге или файле в "C:\windows". Попытка открыть поиск с конечным обратным слэшем (\) будет всегда завершаться ошибкой.

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.