1. 程式人生 > 其它 >部落格2

部落格2

技術標籤:javajava

Java中關於檔案的監聽

  • 這裡面主要涉及的是檔案的一些常用方法,增刪改查等基本語法

接下來介紹一個具體題目

  • 要求輸入一個資料夾: -監聽這個資料夾中是否能有檔案被新增或者刪除
  • 下面直接開始程式碼:
package com01;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.NotDirectoryException;
import java.util.ArrayList;
import java.util.List;

public class FileMonitor
{ private List<File> lastFiles; private List<File> thisFiles; public FileMonitor() { lastFiles = new ArrayList<File>(); thisFiles = new ArrayList<File>(); } public void monitor(File file) throws NotDirectoryException { if (file.isFile()) { throw new NotDirectoryException
(file.getAbsolutePath()); } List<File> middle = new ArrayList<File>(); while (true) { lastFiles.clear(); lastFiles.addAll(thisFiles); thisFiles.clear(); readFile(file); middle.clear(); middle.addAll(lastFiles); middle.removeAll(thisFiles); for (File f : middle)
{ System.out.println("刪除檔案" + f.getAbsolutePath()); } middle.clear(); middle.addAll(thisFiles); middle.removeAll(lastFiles); for (File f : middle) { System.out.println("新增檔案" + f.getAbsolutePath()); } try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void readFile(File file) { thisFiles.add(file); if (file.isDirectory()) { File[] listFiles = file.listFiles(); for (File f : listFiles) { readFile(f); } } } }
  • 下面一個測試類進行啟動
package com01;

import java.io.File;
import java.nio.file.NotDirectoryException;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			new FileMonitor().monitor(new File("D:\\測試"));
		} catch (NotDirectoryException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
  • 下面配上執行的截圖
    在這裡插入圖片描述