扫描Android目录中的更改

时间:2013-12-25 08:33:14

标签: android android-sdcard android-memory

我的应用程序现在有一个后台服务,需要检查用户选择的某些特定目录是否有任何更改。如果有任何新文件,它将被上传到服务器(如同步到您的Dropbox文件夹),但如果用户从他的设备删除文件,服务器上的文件将不会被删除。我的问题是我找不到有效的方法来检测变化。

我首先使用递归来检查文件夹大小,但显然性能并不好(服务必须在xxx分钟/秒后递归检查文件夹,记录其大小以便与下次比较...)。

我尝试使用DownloadManager.ACTION_DOWNLOAD_COMPLETE,这也不是一个好的选择。首先,可以复制新文件,而不仅仅是下载。其次,广播接收者只能接收从我的应用发送的请求,而不是从其他应用或浏览器发送的请求。我查看Google和StackOverFlow,但只能找到如何扫描媒体文件,我需要更多。有什么建议吗?

先谢谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您的问题很难阅读,顺便说一下,如果您要查找的文件夹大小更改使用此功能,

此功能将返回特定文件夹中的大小。

public static long folderSize(File directory) {
    long length = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile())
            length += file.length();
        else
            length += folderSize(file);
    }
    return length;
}

Source