Хотелось бы проверить, свободен ли указаный файл в данный момент на чтение/запись. Отлавливание исключений - не выход, а как сделать иначе не знаю. В идеале хотелось бы реализовать функционал программы Unlocker: проверка файла и удаление дескрипторов (хотя нужен только алгоритм распознавания "занятых" файлов, но и остальное не повредит).
Подскажите, в какую сторону копать? Поиск по IO ничего интересного не выявил (кроме, пожалуй, GetAccessControl, но по моему, это что-то другое).