2

Java アプリケーションで作成したディレクトリの変更を検証する必要があるという要件があります。

ユーザーは、ファイルを作成してファイルを削除したり、変更したりすることでディレクトリを変更できるため、特定のディレクトリが変更されたことを確認したいだけです。

私の解決策:最終変更時刻を含むハッシュが必要であり、毎回ディレクトリの最終変更時刻をハッシュで一致させる必要があります。

しかし、私の技術者は、ユーザーが最終更新時刻を変更できるようにするための多くのトリックとライブラリがあることに異議を唱えています。

代わりに教えてください。

4

1 に答える 1

1

Java 7 ウォッチ サービス API を使用する

for (;;) {

    WatchKey key;
    try {
        key = watcher.take();
    } catch (InterruptedException x) {
        return;
    }

    for (WatchEvent<?> event: key.pollEvents()) {
        WatchEvent.Kind<?> kind = event.kind();

        if (kind == OVERFLOW) {
            continue;
        }

        WatchEvent<Path> ev = (WatchEvent<Path>)event;
        Path filename = ev.context();
       try {
            Path child = dir.resolve(filename);
            if (!Files.probeContentType(child).equals("text/plain")) {
                System.err.format("New file '%s'" +
                    " is not a plain text file.%n", filename);
                continue;
            }
        } catch (IOException x) {
            System.err.println(x);
            continue;
        }

        System.out.format("Emailing file %s%n", filename);
     }

    boolean valid = key.reset();
    if (!valid) {
        break;
    }
} 
于 2013-10-18T14:03:19.740 に答える