溫馨提示×

Java FileWatcher類使用實例

小億
157
2023-12-18 15:42:04
欄目: 編程語言

下面是一個使用Java的FileWatcher類的實例:

import java.nio.file.*;

public class FileWatcherExample {
    public static void main(String[] args) throws Exception {
        // 創建一個WatchService對象
        WatchService watchService = FileSystems.getDefault().newWatchService();
        
        // 注冊監聽的目錄和事件類型
        Path directory = Paths.get("C:/path/to/directory");
        directory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE);

        System.out.println("Watching directory: " + directory);

        // 循環監聽文件變化事件
        while (true) {
            WatchKey key;
            try {
                key = watchService.take();
            } catch (InterruptedException ex) {
                return;
            }

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

                // 處理不同的事件類型
                if (kind == StandardWatchEventKinds.OVERFLOW) {
                    continue;
                } else if (kind == StandardWatchEventKinds.ENTRY_CREATE) {
                    System.out.println("File created: " + event.context());
                } else if (kind == StandardWatchEventKinds.ENTRY_DELETE) {
                    System.out.println("File deleted: " + event.context());
                }
            }

            // 重置監聽鍵,以便繼續接收事件通知
            boolean valid = key.reset();
            if (!valid) {
                break;
            }
        }
    }
}

以上代碼使用了Java的WatchService和WatchKey類來監聽指定目錄下的文件變化事件。在這個例子中,我們注冊了對文件的創建和刪除事件的監聽。當有文件被創建或刪除時,會打印相應的信息。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女