`
chroya
  • 浏览: 661588 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android监听文件和目录的创建删除移动等事件

阅读更多

      android.os下的FileObserver类是一个用于监听文件访问、创建、修改、删除、移动等操作的监听器,基于linux的inotify。 FileObserver 是个抽象类,必须继承它才能使用。每个FileObserver对象监听一个单独的文件或者文件夹,如果监视的是一个文件夹,那么文件夹下所有的文件和级联子目录的改变都会触发监听的事件。
    所能监听的事件类型如下:
    ACCESS,即文件被访问
    MODIFY,文件被 修改
    ATTRIB,文件属性被修改,如 chmod、chown、touch 等
    CLOSE_WRITE,可写文件被 close
    CLOSE_NOWRITE,不可写文件被 close
    OPEN,文件被 open
    MOVED_FROM,文件被移走,如 mv
    MOVED_TO,文件被移来,如 mv、cp
    CREATE,创建新文件
    DELETE,文件被删除,如 rm
    DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
    MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
    CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
    ALL_EVENTS,包括上面的所有事件
      这些都是FileObserver的静态共有属性。
      下面举个例子说明一下其用法。
      比如,我要监听sd卡的目录创建事件,新建一个类SDCardListener继承FileObserver:

import android.os.FileObserver;
import android.util.Log;

/**
 * sd卡上的目录创建监听器
 * @author chroya
 *
 */
public class SDCardListener extends FileObserver {

	public SDCardListener(String path) {
		/*
		 * 这种构造方法是默认监听所有事件的,如果使用super(String,int)这种构造方法,
		 * 则int参数是要监听的事件类型.
		 */
		super(path);
	}

	@Override
	public void onEvent(int event, String path) {		
		switch(event) {
		case FileObserver.ALL_EVENTS:
			Log.d("all", "path:"+ path);
			break;
		case FileObserver.CREATE:
			Log.d("Create", "path:"+ path);
			break;
		}
	}
}

       onEvent是回调,系统监听到事件后会触发此事件,参数event就是上面所说的事件类型,根据类型,我们可以做相应的处理,参数path就是触发事件的目录。

      然后使用它:

SDCardListener listener = new SDCardListener("/sdcard");
//开始监听
listener.startWatching();
/*
* 在这里做一些操作,比如创建目录什么的
*/
//最后停止监听
listener.stopWatching();

 

      如果要在onEvent中做较多操作,最好用线程去做 ,以免因为阻塞接收不到后面的事件。

      最后补充一点,比较重要
      FileObserver对象必须保持一个引用,确保不被垃圾收集器回收掉,否则就不会触发事件了。

4
0
分享到:
评论

相关推荐

    安卓SD卡文件管理更新信息相关-文件管理器项目支持文件创建文件夹创建文件删除移动复制等功能还有方便方式全选等.rar

    本项目聚焦于SD卡的文件管理,提供了丰富的功能,如文件创建、文件夹创建、文件删除、移动、复制等,同时也包括了全选功能,提高了操作效率。以下是对这些知识点的详细说明: 1. **文件创建**:在安卓设备上,用户...

    android 文件浏览器

    1. Android文件系统:Android采用Linux内核,因此其文件系统与传统的Linux文件系统类似,包括根目录、挂载点、文件和目录等。 2. Android存储空间:Android设备通常有两种存储方式,内部存储(Internal Storage)和...

    Android文件资源管理项目

    文件管理器需要提供创建、删除、重命名文件和目录的功能。这些操作可以通过File类提供的mkdirs(), delete(), renameTo()等方法实现。同时,要注意处理可能出现的异常,如文件不存在、无权限等。 4. **UI设计与布局*...

    Android 拍照、截图事件监听实现源码

    `FileObserver`是一个用于监视文件或目录变化的类,它可以监控创建、删除、修改、移动等事件。 ```java public class MediaObserver extends FileObserver { public MediaObserver(String path, int mask) { ...

    Android 文件管理器

    这个项目名为"FileManagerExample",它包含了创建、浏览、编辑、复制、移动、删除文件和目录等一系列常见的文件管理功能。 首先,Android的文件管理主要涉及到以下几个核心知识点: 1. **文件操作API**:Android...

    Android 文件选择器(支持选择u盘).zip

    开发者可能创建了一个BroadcastReceiver或者使用startActivityForResult()来监听U盘插入和拔出事件。 3. **Permission管理**:由于Android 6.0及以上版本引入了运行时权限,开发者需要在运行时请求读写外部存储和...

    Android简单文件浏览器源代码

    - `java.io.File`:Java中的核心类,用于处理文件和目录,包括创建、删除、重命名、获取属性等操作。 - `ContentResolver`:Android特有的API,用于与内容提供者交互,访问文件系统或媒体库。 - `Intent`:用于...

    Android文件浏览器源码

    首先,我们要明白Android文件浏览器的基本功能:列出指定目录下的文件和子目录,支持用户选择、查看、复制、移动和删除文件。这个简单的文件浏览器实现了这些基础功能,对于初学者来说,这是一个很好的学习起点。 ...

    Android 小米文件管理器源码.rar

    4. 文件操作逻辑:包括创建、删除、移动、复制等文件操作。这些功能通常由`FileOperation`类或者相关服务实现,涉及到了Android的文件I/O操作和Intent机制。 5. 搜索功能:文件管理器的搜索功能涉及到全文搜索或者...

    Android 文件管理器源码.zip

    - 实现文件的创建、删除、重命名、复制、移动等操作,涉及`File`类的各种方法。 - 对于大文件,可能需要使用异步任务(`AsyncTask`)避免阻塞UI线程。 6. **权限管理**: - Android 6.0及以上版本需要动态请求`...

    android文件管理器

    在Android平台上,文件管理器是用户与设备存储交互的重要工具,它允许用户浏览、操作、创建、删除和管理各种类型的文件。本篇文章将深入探讨如何使用Android UI组件ListView来实现一个基本的文件管理器,以及如何...

    android文件浏览器

    8. **文件操作**:包括创建、删除、重命名、复制、移动、压缩和解压缩文件及目录,文件浏览器需提供这些功能的UI和实现。 9. **目录树视图**:文件浏览器通常显示目录层次结构,用户可以通过点击目录节点来展开或...

    一个Android WiFi 文件共享程序

    3. **文件I/O操作**:在Android中处理文件,包括读取、写入、创建和删除文件,是文件共享程序的基础。 4. **蓝牙和WiFi的区别**:虽然两者都能进行设备间通信,但WiFi Direct在速度和文件大小上有优势,适合大文件...

    Android录音 获取录音文件 录音时间

    在Android平台上进行录音操作是移动应用开发中常见的功能,它涉及到多媒体处理、文件操作以及用户交互等多个方面。本文将深入探讨如何在Android中实现录音、获取录音文件以及控制录音时间,同时也会提及与动画和文件...

    Android小米文件管理器源码

    开发者会接触到`File`类用于创建、读取、写入和删除文件,以及`InputStream`和`OutputStream`用于流式数据操作。 2. **SQLite数据库**:在管理文件时,可能会用到SQLite数据库来存储文件元数据,例如文件路径、大小...

    android 文件管理器

    1. 创建/删除/重命名:使用`File`类的方法实现对文件和目录的创建、删除和重命名操作。 2. 复制/移动:涉及`ParcelFileDescriptor`和`FileChannel`,用于在文件系统间传输数据。 3. 解压缩/压缩:可以集成第三方库如...

    android 拖拽和删除的listview

    你可以查看此文件,了解如何布局每个条目,以及如何添加触摸事件监听和删除按钮。 总之,实现Android的拖拽和删除的ListView需要理解ListView的工作原理,自定义Adapter,处理触摸事件,以及掌握数据操作和动画技术...

    android SD卡文件浏览器

    在Android平台上,SD卡文件浏览器是一款实用的应用程序,它允许用户查看和管理存储在设备SD卡上的文件和文件夹。这个应用通常具有直观的界面,采用列表视图展示SD卡内容,便于用户浏览、选择、复制、移动或删除文件...

    android 侧拉删除仿ios侧拉删除

    我们需要监听这些事件,计算手指移动的距离,判断是否触发侧拉删除。 2. **视图动画**:为了实现侧拉效果,可以使用`ObjectAnimator`或者自定义`ViewPropertyAnimator`来平滑地改变视图的位置。同时,需要考虑到...

Global site tag (gtag.js) - Google Analytics