Eine Datei, die jede Sekunde aktualisiert wird, wird jeden Tag um Mitternacht mit einem neuen Datum erstellt. Ich wollte die neueste Datei identifizieren, die nicht aktualisiert wird. Ich werde den Code zu diesem Zeitpunkt aufschreiben.
Holen Sie sich das Änderungsdatum mit File.lastModified ().
Der zurückgegebene Wert ist jedoch ein Long-Typ und eine Liste von Zahlen. Verwenden Sie daher SimpleDateFormat, damit er identifiziert werden kann.
** " JJJJ / MM / TT HH: MM: SS "
** wird im Format angezeigt.
test.java
import java.io.File;
import java.text.SimpleDateFormat;
public class test{
public static void main(String[] args){
String filepath = "C:/tedkuma/BOX/20180729.csv"; //Referenziertes Verzeichnis
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//Definition des Datums- und Uhrzeitformats
File targetFile = new File(filepath);
Long lastModified = targetFile.lastModified(); //LastModified, um das Änderungsdatum abzurufen()verwenden.
String update_time = simpleDateFormat.format(lastModified); //Formatieren Sie den Wert, der lange mit simpleDateFormat eingegangen ist
System.out.println(update_time);
}
}
Lass es uns laufen. Ich konnte das Datum und die Uhrzeit des Updates abrufen.
Verwenden Sie den zuvor geschriebenen Inhalt des Prüfverzeichnisses (https://qiita.com/tedkuma/items/4d0f66443b1cefdd2392), um die Namen und Änderungsdaten mehrerer Dateien aufzuschreiben.
test.java
import java.io.File;
import java.text.SimpleDateFormat;
public class test
{
public static void main(String[] args)
{
String filepath = "C:/tedkuma/BOX/";
File dir = new File(filepath);
File[] list = dir.listFiles(); //Rufen Sie mit listFiles eine Liste der Dateien ab
for(int i=0; i<list.length; i++) {
String filename = list[i].getName();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//Definition des Datums- und Uhrzeitformats
File targetFile = new File(filepath+filename);
Long lastModified = targetFile.lastModified();
String update_time = simpleDateFormat.format(lastModified);
System.out.println(update_time+":"+filename);
}
}
}
Lass es uns laufen. Der Dateiname und das Aktualisierungsdatum könnten angezeigt werden.
Verwenden Sie die Kalenderklasse, um die Zeit zu berechnen. (Import java.util.Calendar hinzugefügt;) Sie können die aktuelle Uhrzeit mit ** Calendar.getInstance () ** abrufen. Mit der Variablen .add (Calendar.DATE, 1); die Zeit nach 1 Tag, wenn Sie DATE nach 1 Minute in MINUTE ändern, Sie können die Uhrzeit auch vor einem Tag oder vor einer Minute abrufen, indem Sie das zweite Argument 1 in -1 ändern.
Da lastModified (langer Typ), der das Aktualisierungsdatum erhalten hat, nicht direkt in den Kalendertyp konvertiert werden kann Ich verwende den Datumstyp, der in einen der beiden konvertiert werden kann. (Import java.util.Date hinzugefügt;)
Sie können ** compareTo () verwenden, um die Größe ** zu vergleichen. Wenn Sie ** A ** schreiben. CompareTo (** B **) ** A > ** B ** Wenn A vorne ist, -1 ** A ** < B ** Wenn A später ist, 1 ** A ** = ** B ** Gleichzeitig wird 0 zurückgegeben.
Ich möchte nicht die aktualisierte Datei erhalten, die jede Sekunde aktualisiert wird Ich habe die if-Bedingung eingegeben, dass die Aktualisierungszeit innerhalb von 1 Tag liegt und 10 Minuten oder mehr vergangen sind.
test.java
import java.io.File;
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class test{
public static void main(String[] args){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String filepath = "C:/tedkuma/BOX/";
File dir = new File(filepath);
File[] list = dir.listFiles();
Calendar st = Calendar.getInstance();//Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit mit der Kalenderklasse
st.add(Calendar.DATE, -1); //Holen Sie sich vor 1 Tag
Date start = st.getTime(); //Zum Datum wechseln
Calendar en = Calendar.getInstance();//Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit mit der Kalenderklasse
en.add(Calendar.MINUTE, -10); //Holen Sie sich vor 10 Minuten
Date end = en.getTime();
for(int i=0; i<list.length; i++) { //Führen Sie die Verarbeitung für Dateien im Zielpfad aus
String filename = list[i].getName();
File targetFile = new File(filepath+filename);
Long lastModified = targetFile.lastModified();
Date koushin = new Date(lastModified);
if(start.compareTo(koushin)<0 && end.compareTo(koushin)>0){//Vergleiche mit compareTo
String update_time = simpleDateFormat.format(koushin);
System.out.println(update_time+":"+filename);
}
}
}
}
Lass es uns laufen. Ich konnte die Dateien innerhalb eines Tages nach dem Update abrufen, mit Ausnahme der zu aktualisierenden Dateien.
Recommended Posts