Я хочу, чтобы моя программа выводилась так, что всякий раз, когда он получает текстовый файл от клиента, он будет печатать «Новый файл был получен!». Текстовые файлы будут храниться в папке C:/Users /% UserProfile%/Desktop/ad.Сравнение текущего времени даты (в реальном времени) с последним измененным файлом
Код, приведенный ниже, предназначен для проверки того, был ли получен новый текстовый файл в каталоге .
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.Timer;
public class Test {
final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
static int count = 0;
static File[] f = null;
static Date date = new Date();
static Calendar now = null;
public static void main(String[] args) {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
while(true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
f = new File("C:/Users/roberts/Desktop/ad").listFiles();
int l = f.length;
System.out.println("There are " + l + " files in the directory");
for (int i = 0; i < l; i++) {
System.out.println("file " + i + " date modified " + dateFormat.format(f[i].lastModified()));
}
}
}
}
Вывод общего количества файлов в каталоге изначально = 1 и последнего изменения
Вывод общего количества файлов в каталоге после того, как файл принимается = 2 и последнего изменения
Теперь для того, чтобы напечатать «новый файл был получен!» Мне нужно сравнить текущее время даты с последним измененным временем даты файла.
Это то, что я сделал
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.Timer;
public class Test {
final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
int interval = 1000;
static int count = 0;
static File[] f = null;
static Date date = new Date();
static Calendar now = null;
public static void main(String[] args) {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
while(true) {
f = new File("C:/Users/roberts/Desktop/ad").listFiles();
int l = f.length;
System.out.println(l);
new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
now = Calendar.getInstance();
for (int i = 0; i < l; i++) {
if(dateFormat.format(now.getTime()).equals(dateFormat.format(f[i].lastModified()))) {
System.out.println("A new file has been received!");
}
}
}
}).start();
try {
Thread.currentThread().join();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
Я пытался, но не печатает «Новый файл был получен!». Пожалуйста, помогите