Верблюжий язык файлов SortBy шаблон даты системное время или шаблон имени файла?

Мне нужно отсортировать каталог ftp другим способом, я использую опцию sortBy=file:modifed. Однако это последнее измененное время не подходит для моего варианта использования. иногда файл, полученный через ftp, отстает или предшествует другому. содержимое - это данные, чувствительные к временным рядам, имена файлов публикуются с отметкой времени.

пример: fileName1_2018-12-14_12-34-33.csv системное время 03:30:23 fileName2_2018-12-14-12-35-22.csv системное время 03:30:03

ясно, что fileName1 должен быть использован первым, но некоторые считают, что время изменения системы предполагает, что fileName2 будет использован первым. файлы, созданные в правильном порядке, однако, записанные в систему, завершены не в порядке. происходит какое-то сумасшествие? но суть в том, что мне нужно использовать fileName1 перед fileName2. поэтому я не могу использовать sortBy = file: updated.

Я думаю использовать что-то вроде, может быть, просто сортировку по лексикографически. Я смотрю на sortBy=date:file:yyyyMMdd;file:name, но не могу понять, соответствует ли шаблон даты системному времени или я могу использовать его в качестве шаблона для файлов?

Я надеюсь это имеет смысл.

Короче говоря, шаблон даты, используемый в sortBy, является шаблоном в имени файла или это измененное время или системное время? в противном случае я могу просто сортировать лексические, я думаю. Спасибо!!!

        final String fromStr = String.format("%s://%s@%s:%s/%s?password=RAW(%s)&recursive=%s&stepwise=%s&useList=%s&passiveMode=%s&disconnect=%s"
                + "&move=.processed"
                + "&maxMessagesPerPoll=100"
                + "&eagerMaxMessagesPerPoll=false"
                + "&sortBy=file:modified"
                //+ "&passiveMode=true"
                + "&sendEmptyMessageWhenIdle=false"
                //+ "&stepwise=false"
                + "&delay=10000"
                + "&initialDelay=5000"
                + "&connectTimeout=10000"
                , transport, username, host, port, path, password, recursive, stepwise, useList, passiveMode, disconnect);

1 ответ

Решение

Сортировка по файлу: измененная - это временная метка файла. Для файлов FTP метка времени еще менее точна, чем обычные файлы, поскольку она зависит от операции со списком серверов FTP, которая часто возвращает время только в часах и минутах.

В вашем случае в именах файлов есть временные метки, поэтому вам следует сортировать по имени файла, а не по измененному файлу.

Другие вопросы по тегам