0

我在网络驱动器上有一个文件,该文件在我们的环境中经常被许多人使用。如何使用 Java 跟踪文件打开/运行的次数。我对文件观察者做了一些研究http://docs.oracle.com/javase/tutorial/essential/io/notification.html但是这些似乎只适用于创建、删除、修改和溢出。在我开始观看切线的文件之前,这可能吗?最好的方法是什么?

4

1 回答 1

0

我真诚地希望您现在已经找到了解决方案。

但是假设有问题的文件是某种可执行文件,您可以修改以下问题的示例:如何使用 Java 获取当前打开的窗口/进程的列表?. 并使用 JNA:

import com.sun.jna.Native;
import com.sun.jna.platform.win32.*;
import com.sun.jna.win32.W32APIOptions;

public class ProcessList {

    public static void main(String[] args) {
        WinNT winNT = (WinNT) Native.loadLibrary(WinNT.class, W32APIOptions.UNICODE_OPTIONS);

        WinNT.HANDLE snapshot = winNT.CreateToolhelp32Snapshot(Tlhelp32.TH32CS_SNAPPROCESS, new WinDef.DWORD(0));

        Tlhelp32.PROCESSENTRY32.ByReference processEntry = new Tlhelp32.PROCESSENTRY32.ByReference();

        while (winNT.Process32Next(snapshot, processEntry)) {
            //see if your process is open and update your counter
        }

        winNT.CloseHandle(snapshot);
    }
}

Timer并用一个对象轮询系统。

于 2015-06-11T17:04:43.637 回答