我想要一个class
,它将成为Android应用程序的一部分,可直接向我提供图像,视频等任何文件的最后打开状态或上次访问状态。 BasicFileAttribute.class
似乎不适合我。解决方案需要使用JDK 8.我不想使用JDK 7.
答案 0 :(得分:0)
您可以使用Os.stat - 从api 21开始,它会返回StructStat,其中包含字段st_atime和上次访问时间(以秒为单位)。例如:
if (Build.VERSION.SDK_INT >= 21) {
try {
StructStat stat = Os.stat("/path/to/my/file");
if (stat.st_atime != 0) {
// stat.st_atime contains last access time, seconds since epoch
}
} catch (Exception e) {
// deal with exception
}
}
其他解决方案是执行shell命令stat
:
Process p = Runtime.getRuntime().exec("stat -c \"%X\" /path/to/file");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = reader.readLine();
long time_sec = 0;
if (!TextUtils.isEmpty())
time_sec = Long.parseLong(line);
我没有测试过上面的代码 - 但它看起来应该可以正常工作。
第三个方法是使用NDK并从C或C ++调用stat
函数。