Un fichier mis à jour toutes les secondes est créé chaque jour à minuit avec une nouvelle date. Je voulais identifier le dernier fichier autre que celui en cours de mise à jour. J'écrirai le code à ce moment-là.
Obtenez la date de modification avec File.lastModified ().
Cependant, la valeur renvoyée est un type Long et une liste de nombres, utilisez donc SimpleDateFormat pour pouvoir l'identifier.
** " aaaa / MM / jj HH: mm: ss "
** s'affiche dans le format.
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"; //Répertoire référencé
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//Définition du format de la date et de l'heure
File targetFile = new File(filepath);
Long lastModified = targetFile.lastModified(); //LastModified pour obtenir la date de modification()utilisation.
String update_time = simpleDateFormat.format(lastModified); //Formatez la valeur fournie avec simpleDateFormat
System.out.println(update_time);
}
}
Lançons-le. J'ai pu obtenir la date et l'heure de la mise à jour.
Utilisez le contenu du répertoire de vérification précédemment écrit (https://qiita.com/tedkuma/items/4d0f66443b1cefdd2392) pour noter les noms et les dates de modification de plusieurs fichiers.
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(); //Obtenir une liste de fichiers à l'aide de listFiles
for(int i=0; i<list.length; i++) {
String filename = list[i].getName();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//Définition du format de la date et de l'heure
File targetFile = new File(filepath+filename);
Long lastModified = targetFile.lastModified();
String update_time = simpleDateFormat.format(lastModified);
System.out.println(update_time+":"+filename);
}
}
}
Lançons-le. Le nom du fichier et la date de mise à jour peuvent être affichés.
Utilisez la classe Calendar pour calculer l'heure. (Ajout de l'importation java.util.Calendar;) Vous pouvez obtenir l'heure actuelle avec ** Calendar.getInstance () **. 1 jour plus tard avec la variable .add (Calendar.DATE, 1);, 1 minute plus tard avec DATE changé en MINUTE, Vous pouvez également obtenir l'heure d'il y a un jour ou une minute en remplaçant le deuxième argument 1 par -1.
Depuis le lastModified (type long) qui a obtenu la date de mise à jour ne peut pas être directement converti en type de calendrier J'utilise le type de date qui peut être converti en l'un ou l'autre. (Ajout de l'importation java.util.Date;)
Vous pouvez utiliser ** compareTo () pour comparer la taille **. Lorsque vous écrivez ** A . CompareTo ( B **) ** A > ** B ** Quand A est devant, -1 ** A ** < B ** Quand A est plus tard, 1 ** A ** = ** B ** En même temps, 0 est renvoyé.
Je ne veux pas obtenir le fichier mis à jour qui est mis à jour toutes les secondes J'ai mis dans la condition if que l'heure de mise à jour est dans 1 jour et 10 minutes ou plus se sont écoulées.
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();//Obtenez la date et l'heure actuelles avec la classe Calendar
st.add(Calendar.DATE, -1); //Obtenir il y a 1 jour
Date start = st.getTime(); //Changer de date
Calendar en = Calendar.getInstance();//Obtenez la date et l'heure actuelles avec la classe Calendar
en.add(Calendar.MINUTE, -10); //Obtenir il y a 10 minutes
Date end = en.getTime();
for(int i=0; i<list.length; i++) { //Exécuter le traitement des fichiers dans le chemin cible
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){//Comparer avec comparer
String update_time = simpleDateFormat.format(koushin);
System.out.println(update_time+":"+filename);
}
}
}
}
Lançons-le. J'ai pu obtenir les fichiers dans un délai d'un jour après la mise à jour, à l'exclusion des fichiers en cours de mise à jour.
Recommended Posts