FsFindNext
FsFindNext вызывается, чтобы вернуть следующий файл в директории файловой
системы плагина.
Объявление:
BOOL __stdcall FsFindNext(HANDLE Hdl,WIN32_FIND_DATA *FindData);
Описание параметров:
Hdl Поисковый хэндл, возвращаемый FsFindFirst.
FindData Стандартная структура WIN32_FIND_DATA, определённая в
Windows SDK, которая содержит информацию о файле или
директории. Используется поле dwFileAttributes с
установленным значением FILE_ATTRIBUTE_DIRECTORY для
указания на то, что имеем директорию. В Unix системах
вы можете сочетать поле dwFileAttributes знаком | (or)
с значением 0x80000000 и установить поле dwReserved0
в атрибуты файлов Unix (permissions).
Возвращаемое значение:
Возвращает FALSE в случае ошибки или если нет больше файлов, или TRUE
в противном случае. Нет необходимости вызывать SetLastError().
Смотри также: FsFindFirst, FsFindClose
FsFindFirst
FsFindFirst вызывается, чтобы возвратить первый файл в директории файловой
системы плагина.
Объявление:
HANDLE __stdcall FsFindFirst(char* Path,WIN32_FIND_DATA *FindData);
Описание параметров:
Path Полный путь к директории, для которой должен быть возвращен
листинг директории. Важно: no wildcards are passed to
the plugin! Все разделители должны быть обратными косыми
черточками (backslashes), при этом вы должны конвертировать
их в прямые косые черточки, если ваша файловая система
использует их!
В качестве корневой директории плагину возвращается
одиночная обратная косая черта. Элементы корневой
директории, находящиеся в базовой директории плагинов
возвращаются посредством FsGetDefRootName во время
установки. Это имя корневой директории НЕ является
частью пути, передаваемого плагину!
Все поддиректории строятся из имен директорий,
возвращаемых плагином через FsFindFirst и FsFindNext,
разделённые одинарной обратной косой чертой, например:
\Some server\c:\subdir
FindData Стандартная структура WIN32_FIND_DATA, описанная в
Windows SDK, которая содержит информацию о файле или
директории. Используется поле dwFileAttributes с
установленным значением FILE_ATTRIBUTE_DIRECTORY для
указания на то, что имеем директорию. В Unix системах
вы можете сочетать поле dwFileAttributes знаком | (or)
с значением 0x80000000 и установить поле dwReserved0
в атрибуты файлов Unix (permissions).
Возвращаемое значение:
Возвращается INVALID_HANDLE_VALUE (==-1, не ноль!) если произошла ошибка, или
номер на ваш выбор, в протовном случае. Рекомендуется передавать в этот хэндл
указатель на внутреннюю структуру, которая хранит текущий статус поиска. Это
позволит реализовывать рекурсивный поиск по директориям, необходимый для
копирования целых деревьев. Этот хэндл будет передан функции FsFindNext()
вызовом программы.
Если происходит ошибка, вызовите SetLastError(), чтобы установить причину
ошибки. Total Commander проверяет две следующие ошибки:
1. ERROR_NO_MORE_FILES: Директория существует, но она пуста (Totalcmd может
открыть её, например копировать в неё файлы)
2. Любая другая ошибка: Директория не существует, и Total Commander не будет
пытаться открыть её.
Важное замечание:
FsFindFirst может быть вызвана напрямую с поддиректорией плагина! Вы не
можете быть уверены в том, что она будет вызвана из корневой директории \
сразу после загрузки плагина. Причина: Пользователи могут иметь сохраненную
поддиректорию в плагине в списке директорый быстрого вызова Ctrl+D в
предыдущей сессии с плагином.
Смотри также: FsFindNext, FsFindClose