如何检测文件修改?

时间:2011-09-12 11:16:49

标签: android file-io data-integrity

我有一个包含一些数据的存储文件。我想检测它是否已被修改,然后在必要时解决问题。

我考虑过控制文件中的行数,但是我被卡住了。

此外,没有方法可以执行此操作:http://developer.android.com/reference/java/io/File.html

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

使用MD5校验和将是一种非常密集的方法,但是如果比较文件中“修改日期”数据的时间戳,您应该能够有效地找到已修改的文件。

这应该可以帮助你开始

File file = new File(absolute_file_location);

if (file.exists())
{
  Date lastModified = new Date(file.lastModified());
}

答案 1 :(得分:4)

查看FileObserver课程documentation.

答案 2 :(得分:2)

您可以尝试使用md5文件检查来检查文件的校验和。

Java md5校验和:  Getting a File's MD5 Checksum in Java

或试试这个  http://www.rgagnon.com/javadetails/java-0490.html

我认为还有其他方法比

更好

答案 3 :(得分:1)

使用file

的lastModified方法跟踪上次修改文件的时间戳

http://developer.android.com/reference/java/io/File.html#lastModified()

答案 4 :(得分:0)

另一种方法是使用Java WatchService观察文件的更改。

https://docs.oracle.com/javase/tutorial/essential/io/notification.html

我不确定它在Android中的效果如何。