http://orgcent.com/android-sdcard-fileobserver/
Android系统API提供了FileObserver抽象类(Linux的INotify机制)来监听系统/sdcard中的文件或文件夹,FileObserver类能对sdcard中的文件及文件夹的打开、创建、移动和删除操作进行监控。下面看看代码实现:
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.FileObserver;
public class AndroidFileListenerActivity extends Activity {
private FileObserver mFileObserver;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if(null == mFileObserver) {
mFileObserver = new SDCardFileObserver(Environment.getExternalStorageDirectory().getPath());
mFileObserver.startWatching(); //开始监听
}
}
public void onDestory() {
if(null != mFileObserver) mFileObserver.stopWatching(); //停止监听
}
static class SDCardFileObserver extends FileObserver {
//mask:指定要监听的事件类型,默认为FileObserver.ALL_EVENTS
public SDCardFileObserver(String path, int mask) {
super(path, mask);
}
public SDCardFileObserver(String path) {
super(path);
}
@Override
public void onEvent(int event, String path) {
final int action = event & FileObserver.ALL_EVENTS;
switch (action) {
case FileObserver.ACCESS:
System.out.println("event: 文件或目录被访问, path: " + path);
break;
case FileObserver.DELETE:
System.out.println("event: 文件或目录被删除, path: " + path);
break;
case FileObserver.OPEN:
System.out.println("event: 文件或目录被打开, path: " + path);
break;
case FileObserver.MODIFY:
System.out.println("event: 文件或目录被修改, path: " + path);
break;
}
}
}
}
注意事项:
1、防止FileObserver类的对象被垃圾回收,否则将不能收到文件及文件夹的监听事件了。
2、程序运行在Android模拟器中,使用Eclipse的DDMS中的File视图来对Android模拟器的sdcard中的文件及文件夹进行操作
分享到:
相关推荐
创建了文件夹之后,你可以使用`File`类的方法来创建、读取、写入或删除文件。例如,要在刚刚创建的文件夹中创建一个新文件: ```java File newFile = new File(appFolder, "example.txt"); if (!newFile.exists())...
下面将详细介绍`FileObserver`的使用方式以及与相机文件夹监控相关的知识。 首先,`FileObserver`的实例化需要提供一个路径和一个观察事件的位掩码。路径可以是文件或者目录,而位掩码定义了你关心的事件类型,如`...
本excel中记录了miui 系统中 软件或者系统在sd卡中建立的缓存文件或文件夹的名称 以及所对应的程序 并附建议性删除选项
在Android开发中,有时我们需要实时监控SD卡上文件的变化,比如文件的创建、删除、重命名或内容修改等。这通常可以通过使用`FileObserver`类来实现。`FileObserver`是Android提供的一种轻量级机制,用于监视指定目录...
总结来说,创建和删除Android SD卡上的文件夹涉及对文件系统的操作,包括`File`对象的使用以及相应的文件操作方法。而利用ListView和BaseAdapter,可以方便地在界面上展示这些文件夹,并进行交互操作。在开发过程中...
3. **文件过滤**:为了只显示文件夹和TXT文件,可以使用`java.io.File`类的`listFiles()`方法,传入一个`FileFilter`对象。这个过滤器应该检查每个文件的扩展名是否为".txt"。例如: ```java File dir = ...
本教程将聚焦于在SDcard(外部存储)上创建新文件和文件夹以及调整其权限的源码实现。SDcard是Android设备用于存储用户数据和应用程序扩展内容的主要空间。 首先,我们要明确Android对文件操作的限制。由于安全考虑...
在Android开发或者测试过程中,有时候我们需要对安卓模拟器的存储空间进行操作,比如添加应用程序、媒体文件等。这时,就需要了解如何打开并修改安卓模拟器的`sdcard.img`文件。`sdcard.img`文件是Android模拟器中...
在Android平台上,对SDCard(外部存储)进行文件操作是应用程序与用户交互的重要部分,尤其对于需要存储大量数据或媒体文件的应用来说。本教程将详细解释如何在Android中读写SDCard文件,非常适合初学者入门。 首先...
主要方法:1.获取文件指定文件的指定单位的大小;2.调用此方法自动计算指定文件或指定文件夹的大小;3.获取指定文件大小;4.获取指定文件夹;5.转换文件大小;6.转换文件大小,指定转换的类型
step 3:检测sdcard中mana文件夹下是否有test.txt文件,如果有则读取文件内容,如果没有则从assets中把test.txt文件拷贝到sdcard的mana文件夹下,然后读取sdcard中的test.txt文件内容。 step 4:把文件内容显示到...
本文将深入探讨如何检测Android系统是否支持SDcard,并在SDcard上创建并写入文件,主要涉及的技术点包括Android的存储权限、SDcard的检测、FileOutputStream的使用。 首先,我们需要了解Android对外部存储的访问...
7. **监听文件变化**:如果需要实时监控文件或目录的变化,可以使用`FileObserver`类。 ```java FileObserver observer = new FileObserver(dir.getAbsolutePath(), FileObserver.ALL_EVENTS) { @Override ...
今天,我们将为大家分享一篇关于 Android 获取 SDcard 目录及创建文件夹的方法,这篇文章具有很好的参考价值,希望对大家有所帮助。 首先,让我们来看一下如何获取 SDcard 目录。获取 SDcard 目录的方法是通过 ...
以下是关于"sdcard文件读写案例-ES文件浏览器"的相关知识点: 1. **SD卡访问权限**:在Android 6.0(API级别23)及以上版本,应用需要动态获取读写SD卡的权限。用户在首次运行应用时会被询问是否授予`READ_EXTERNAL...
预置一些文件到系统sdcard目录
android调试sdcard文件加载,解决不能传入文件问题: 只需要执行4个命令,win和mac下都好使。
在Android设备上,SD卡通常使用FAT32或exFAT文件系统,而这款应用需要能够理解和处理这些文件系统的特性。 2. **目录结构**:应用允许用户浏览目录层级,这涉及到递归遍历文件夹结构,展示每个文件和子文件夹。用户...
在Android平台上,对SD卡(外部存储)进行读写文件是常见的操作,尤其对于需要存储大量数据或资源的应用来说更是必不可少。本实例将探讨如何在Android应用中实现SdCard的读取和写入功能,这涉及到Android的权限管理...
代码如下:// 读取sdcard文件private void sdcardRead(){String fileName = “/sdcard/my_sdcard.txt”;// assets下文件//String fileName = “/sdcard/test/my_sdcard_test.txt”;// sdcard下子目录文件String ret =...