如何在android中获取文件的创建日期。我知道file.lastModified(),但我真的需要创建日期,你可以在操作系统Windows中的文件属性中看到。
如果有人知道此任务的解决方案,请在此消息下面写下。 谢谢!
答案 0 :(得分:4)
每个操作系统都不支持创建日期。这就是为什么Java没有方法来获取文件的创建日期。我最近也遇到了这个问题。
我所做的是将时间戳附加为文件的附录。
File f = new File("myFile-" + System.currentTimeMillis());
当您稍后查找文件时,您将能够提取附录并将其转换回日期以查找其创建日期。
String fileName = f.getName();
String[] split = fileName.split("-");
long timeStamp = 0;
try {
timeStamp = Long.parseLong(split[1]);
} catch(NumberFormatException nfe) {
nfe.printStackTrace();
}
System.out.println("Creation date for file " + f + " is " + new Date(timeStamp));
答案 1 :(得分:0)
这只适用于上面的 API 26
@RequiresApi(Build.VERSION_CODES.O)
private fun getDate(file: File): String {
val basicFileAttributes =
Files.readAttributes(file.toPath(),BasicFileAttributes::class.java)
val fileTimeStr = basicFileAttributes.creationTime().toString()
return fileTimeStr.split("T")[0].split("-").reversed().joinToString("/")
}
@RequiresApi(Build.VERSION_CODES.O)
private fun getTime(file: File): String{
val basicFileAttributes =
Files.readAttributes(file.toPath(),BasicFileAttributes::class.java)
val fileTimeStr = basicFileAttributes.creationTime().toString()
return fileTimeStr.split("T")[1].substringBeforeLast(":")
}
答案 2 :(得分:-1)
我找到了我的问题的解决方案,可能有人需要它: 您可以通过执行bash命令或描述here
之类的脚本来获取创建日期stat <filepath>
从android执行脚本:
p = Runtime.getRuntime().exec("stat " + /mnt/sdcard01/somefile);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
}