检测文件是否已被另一个程序打开并检测该程序

时间:2018-11-01 10:49:29

标签: java file events process filesystems

是否可以通过任何应用程序检测文件是否已打开/关闭? 我想在外部编辑器释放(关闭)文件后立即删除它。 我正在专门寻找WatchServices未提供的“打开”和“关闭”事件。

我曾考虑过扫描特定名称(例如“ Word”,“ Excel”等)的过程,但是如果找到一个,我需要以某种方式找到这些过程打开的确切文件。

1 个答案:

答案 0 :(得分:0)

我这样做是为了检查是否打开了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;
    }
}

也许您可以拥有一个带有计时器的线程,该线程以某个特定的时间间隔不断检查该线程。如果发现文件没有打开。您可以删除文件。

干杯!!!