6

如何在android中获取文件的创建日期。我知道 file.lastModified(),但我真的需要创建日期,您可以在 OS Windows 的文件属性中看到。

如果有人知道此任务的解决方案,请将其写在此消息下方。谢谢!

4

3 回答 3

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));
于 2013-07-05T12:31:15.817 回答
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(":")
}
于 2021-08-07T11:27:15.073 回答
-1

我找到了我的问题的解决方案,可能有人需要它:您可以通过执行 bash 命令或脚本获取创建日期,如下所述

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();
}
于 2013-07-08T17:21:59.373 回答