Das ist mein Code:
File TempFiles = new File(Tempfilepath);
if (TempFiles.exists()) {
String[] child = TempFiles.list();
for (int i = 0; i < child.length; i++) {
Log.i("File: " + child[i] + " creation date ?");
// how to get file creation date..?
}
}
Antworten:
Das Erstellungsdatum der Datei ist nicht verfügbar , Sie können jedoch das Datum der letzten Änderung abrufen :
File file = new File(filePath); Date lastModDate = new Date(file.lastModified()); System.out.println("File last modified @ : "+ lastModDate.toString());
quelle
So würde ich es machen
// Used to examplify deletion of files more than 1 month old // Note the L that tells the compiler to interpret the number as a Long final int MAXFILEAGE = 2678400000L; // 1 month in milliseconds // Get file handle to the directory. In this case the application files dir File dir = new File(getFilesDir().toString()); // Obtain list of files in the directory. // listFiles() returns a list of File objects to each file found. File[] files = dir.listFiles(); // Loop through all files for (File f : files ) { // Get the last modified date. Milliseconds since 1970 Long lastmodified = f.lastModified(); // Do stuff here to deal with the file.. // For instance delete files older than 1 month if(lastmodified+MAXFILEAGE<System.currentTimeMillis()) { f.delete(); } }
quelle
Das Erstellungsdatum der Datei ist kein verfügbares Datenelement, das von der Java-
File
Klasse verfügbar gemacht wird . Ich empfehle Ihnen zu überdenken, was Sie tun, und Ihren Plan zu ändern, damit Sie ihn nicht brauchen.quelle
Ab API-Level 26 können Sie Folgendes tun:
File file = ...; BasicFileAttributes attr = Files.readAttributes(file.toPath(), BasicFileAttributes.class); long createdAt = attr.creationTime().toMillis();
quelle
Es gibt einen alternativen Weg. Wenn Sie die Datei zum ersten Mal öffnen, speichern Sie das Datum der letzten Änderung, bevor Sie den Ordner ändern.
long createdDate =new File(filePath).lastModified();
Und dann, wenn Sie die Datei schließen, tun
File file =new File(filePath); file.setLastModified(createdDate);
Wenn Sie dies seit der Erstellung der Datei getan haben, haben Sie das Erstellungsdatum immer als das Datum der letzten Änderung.
quelle
Aus Gründen der Abwärtskompatibilität würde ich lieber Folgendes verwenden:
fun getLastModifiedTimeInMillis(file: File): Long? { return try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { getLastModifiedTimeFromBasicFileAttrs(file) } else { file.lastModified() } } catch (x: Exception) { x.printStackTrace() null } } @RequiresApi(Build.VERSION_CODES.O) private fun getLastModifiedTimeFromBasicFileAttrs(file: File): Long { val basicFileAttributes = Files.readAttributes( file.toPath(), BasicFileAttributes::class.java ) return basicFileAttributes.creationTime().toMillis() }
Wenn Sie sich mit JPG oder JPEGs beschäftigen, können Sie alternativ ExifInterface verwenden
quelle