Android FileObserver 是一個用于監控文件系統更改的類
import android.os.FileObserver;
String pathToObserve = "/path/to/my_directory";
FileObserver fileObserver = new FileObserver(pathToObserve, FileObserver.ALL_EVENTS);
這里,FileObserver.ALL_EVENTS
表示監控所有類型的文件系統事件(創建、刪除、修改等)。您還可以使用其他常量,如 FileObserver.CREATE
、FileObserver.DELETE
等,以監控特定類型的事件。
FileObserver.startWatching()
方法來完成的:fileObserver.startWatching();
onDestroy()
方法中,您可以調用 FileObserver.stopWatching()
方法來停止監控:@Override
protected void onDestroy() {
super.onDestroy();
fileObserver.stopWatching();
}
FileObserver.OnEventListener
接口并重寫 onEvent()
方法。例如:fileObserver.setOnEventListener(new FileObserver.OnEventListener() {
@Override
public void onEvent(int event, @Nullable String path) {
if ((event & FileObserver.CREATE) != 0) {
// 處理創建事件
} else if ((event & FileObserver.DELETE) != 0) {
// 處理刪除事件
} else if ((event & FileObserver.MODIFY) != 0) {
// 處理修改事件
} else if ((event & FileObserver.MOVED_FROM) != 0) {
// 處理移動事件(從指定路徑)
} else if ((event & FileObserver.MOVED_TO) != 0) {
// 處理移動事件(到指定路徑)
}
}
});
現在,每當 “my_directory” 及其子文件夾中的文件發生更改時,onEvent()
方法就會根據相應的事件類型執行操作。