Определить, открыт ли файл другой программой, и обнаружить эту программу - PullRequest
0 голосов
/ 01 ноября 2018

Есть ли способ определить, был ли файл открыт / закрыт каким-либо приложением? Я хочу удалить файл, как только он был выпущен (закрыт) внешним редактором. Я специально ищу "открытые" и "закрытые" события, которые не предоставлены WatchServices.

Я думал о процессах сканирования для определенных имен (например, «Word», «Excel» и т. Д.), Но если я их найду, мне нужно каким-то образом найти, какие именно файлы открываются этими процессами.

1 Ответ

0 голосов
/ 01 ноября 2018

Я сделал это, чтобы проверить, открыт ли Excel, вы можете сделать что-то подобное.

public static boolean isFileAlreadyOpened(String fileName) {

    File file = new File(fileName);
    Workbook workBook = null;
    try {
        workBook = WorkbookFactory.create(file);
        workBook.close();
        return Boolean.FALSE;

    } catch (Exception e) {
        return Boolean.TRUE;
    }
}

Может быть, у вас может быть Поток с таймером, который продолжает проверять это через определенный интервал. Если файл не открыт. Вы можете удалить файл.

Ура !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...