Я пытаюсь получить дату последней модификации файла, используя класс FTPClient
:
FTPClient client = new FTPClient();
client.connect(hostname);
client.login(user, passwd);
client.changeWorkingDirectory(dir);
FTPFile[] files = client.listFiles();
for (FTPFile file : files) {
SimpleDateFormat formatDate = new SimpleDateFormat("dd.MM.yyyy HH:mm");
String formattedDate = formatDate.format(file.getTimestamp().getTime());
System.out.println(file.getName() + " " + file.getSize() + " " + formattedDate);
}
В некоторых файлах время печатается некорректно: вместо истинного значения 00:00
. Где моя ошибка и как ее решить? Может быть, есть другие способы получить эту информацию?
Я попытался реализовать ту же процедуру, используя URLConnection
:
String ftpUrl = "ftp://%s:%s@%s/%s";
String host = "ip address";
String user = "user name";
String pass = "password";
String filePath = "/folder name/";
ftpUrl = String.format(ftpUrl, user, pass, host, filePath);
System.out.println("URL: " + ftpUrl);
try {
URL url = new URL(ftpUrl);
URLConnection conn = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line; // read from the urlconnection via the bufferedreader
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException ex) {
ex.printStackTrace();
}
Файлы, которые имели время 00:00
с классом FTPClient
, теперь его вообще не имеют. Где моя ошибка? Может быть, это зависит от типа файла?
Большое спасибо!
File inputFile = new File("\\your IP\path to file");
07.07.2014filepath
в аргументах методаgetModificationTime
:ftp://user_name:password@ip_address//directory//
но возвращаемый результатNULL
07.07.2014getLastModificationTimeDate(java.lang.String filePath)
? Он возвращает время последней модификации или обновления файла или папки в виде объекта java.util.Date. 07.07.2014