Такого рода API "мог бы это работать" не существует в многозадачной операционной системе.Они по своей сути ненадежны, как проверка, если файл заблокирован.Такой тест может вернуть «не заблокирован», тогда ваш поток может быть прерван, а другой поток в другом процессе может заблокировать файл.Когда ваш поток восстанавливает ЦП, вы обнаружите, что файл заблокирован, хотя тест показал, что это не так.
Единственный способ сделать это - выполнить операцию, а затем найтиошибка, указывающая, что это невозможно.Исключение в C #, используйте оператор try , чтобы перехватить IOException.Не так легко справиться, но, по крайней мере, NTFS позволяет переименовывать или перемещать заблокированный файл.