#windows #delphi #networking #file-io #delphi-xe
#Windows #delphi #сеть #file-io #delphi-xe
Вопрос:
Есть ли какой-либо способ проверить, ReadDirectoryChanges
будет ли работать для данного пути? (Я предполагаю, что это не будет работать, например, на общих сетевых ресурсах Linux). Я предполагаю, что вызов ReadDirectoryChanges
по такому пути вернет код ошибки, но я не могу проверить это в настоящее время. Кто-нибудь знает, работает ли это? Есть ли другие способы проверить это?
Ответ №1:
Из MSDN:
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ненулевое. Для синхронных вызовов это означает, что операция выполнена успешно. Для асинхронных вызовов это указывает на то, что операция была успешно поставлена в очередь.
Если функция завершается с ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError.
Если сетевой перенаправитель или целевая файловая система не поддерживают эту операцию, функция завершается с ошибкой ERROR_INVALID_FUNCTION.
Поэтому просто проверьте наличие «ERROR_INVALID_FUNCTION».
Ответ №2:
Если вы хотите провести тест с использованием грубой силы, просмотрите каталог, попробуйте создать временный файл — если вы не получите ответ в течение «разумного» периода времени. Предположим, что эта папка не может быть протестирована.
Комментарии:
1. Да, это решение, для которого я хочу найти более элегантную замену. Особенно странно считать тайм-аут постоянным. Я не знаю, какие внутренние компоненты влияют на задержку.