Быстрое преобразование Фурье — FFT и это являются техникой Cooley-Tukey, потребует, чтобы использование укусило операции смещения.
(Вопросы и ответы касаются того, как бороться с блокировками «открытых файлов» Windows ... а не о том, как реализовать этот вид блокировки переносимо.)
Вся эта проблема чревата проблемами переносимости и условиями гонки:
FileLock
или что-то еще, у вас все еще есть проблема, что что-то может войти и открыть файл между тестированием файла и выполнением переименования. Более простое, хотя и непереносимое решение - просто попробовать переименование (или что-то еще, что вы пытаетесь сделать) и диагностировать возвращаемое значение и / или любые исключения Java, возникающие из-за открытых файлов.
Примечания:
Если вы используете API Files
вместо File
API, вы получите дополнительную информацию в случае сбоя.
В системах (например, Linux), где вам разрешено переименовывать заблокированный или открытый файл, вы не получите никаких ошибок или исключений. Операция будет успешной. Однако в таких системах вам обычно не нужно беспокоиться, если файл уже открыт, поскольку ОС не t блокировать файлы при открытии.
Я не думаю, что вы когда-нибудь получите окончательное решение для этого, операционная система не обязательно сообщит вам, открыт файл или нет.
Вы можете получить некоторую отдачу от java.nio.channels.FileLock
, хотя документация javadoc загружена с оговорками.