Nano Hash - криптовалюты, майнинг, программирование

Джава. Получить дату последней модификации файла

Я пытаюсь получить дату последней модификации файла, используя класс 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, теперь его вообще не имеют. Где моя ошибка? Может быть, это зависит от типа файла?

Большое спасибо!

07.07.2014

  • Возможно, следует сообщить нам, какой FTPClient вы используете? Угадайте, что это Apache commons-net? Вы проверили возвращаемое значение от file.getTimeStamp() и file.getTimeStamp().getTime(), чтобы проверить, какое время, по их мнению, сейчас? 07.07.2014
  • Питер Лильенберг, да. Я использовал commons-net-3.3. file.getTimeStamp().getTime() возвращает что-то вроде Sun Jun 01 00:00:00 EEST 2014. 07.07.2014
  • file.getTimestamp() возвращает java.util.GregorianCalendar[time=1401570000000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo 07.07.2014
  • file.getTimestamp().getTimeInMillis() возвращает 1401570000000 07.07.2014

Ответы:


1

Взгляните на это Пример Java FTP - получение и установка времени модификации файла

07.07.2014
  • user000324, как получить доступ к файлу, используя IP-адрес и каталог? 07.07.2014
  • Попробуйте это File inputFile = new File("\\your IP\path to file"); 07.07.2014
  • Я использовал эту строку вместо filepath в аргументах метода getModificationTime: ftp://user_name:password@ip_address//directory// но возвращаемый результат NULL 07.07.2014
  • Откуда вы получаете доступ к файлу, локально или удаленно? 07.07.2014
  • Прочтите этот пост stackoverflow.com/ вопросы/12615475/ 07.07.2014
  • Я нашел, как выглядит строка подключения, но это не помогает. Я отредактировал свой пост (вопрос) 07.07.2014
  • Вы пробовали этот метод FTPClient getLastModificationTimeDate(java.lang.String filePath)? Он возвращает время последней модификации или обновления файла или папки в виде объекта java.util.Date. 07.07.2014
  • Мне нужно использовать пакет передачи Zehon? 07.07.2014
  • Нет, это не помогает. Результат тот же. 07.07.2014
  • См. сообщение Чтение атрибутов файла с использованием протокола FTP, где @Goibniu сказал, < b>этот код подвержен атаке путем внедрения кода SQL. Хорошо, посмотрите на эту статью Пример Java FTP — получение сведений о файле или каталоге на сервере. Теперь я надеюсь, что вы получите решение. 08.07.2014

  • 2

    Некоторые FTP-серверы поддерживают public String getModificationTime(String pathname) в классе FTPClient. Может быть, вы могли бы попробовать этот подход.

    07.07.2014
  • Войтек О., как можно получить доступ к файлу, используя IP-адрес и каталог? 07.07.2014
  • Так же, как в Этот пример 08.07.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..