я работаю над проектом, который вытягивает файлы с третьей стороной FTP-сайта, где файлы определяются с помощью маски, позволяет сказать «XXX'MMddy.FILE где XXX является код поставщика и y - последняя цифра года.Java маска форматирования для диапазона дат
Мое приложение относится только к файлам, соответствующим маске, но не заботится о фактической дате в файле. В настоящее время мы создаем список дат месяцем назад с объектом Java Calendar
и итерацией через него, чтобы создать каждую возможную маску до тех пор, пока она не будет соответствовать или не будет признана недействительной. Я чувствую, что должен быть лучший способ сделать это ...
Таким образом, чтобы повторить в циничном вопросе, есть ли способ использовать маску, не создавая экземпляр каждой даты для сравнения с фактическим именем файла?
т.е. XXX04022.FILE соответствует XXXMMddy.FILE
почему не просто 'acceptFromFTP (String LocalName): метод boolean' с одним 'return localname.matches (" \\ w {3} \\ d {6} [.] FILE ")'? Разумеется, было бы разумно подать этот вклад в какой-то запрос FTP 'ls' вместо' mget *' и последовать за ним. –
Это здорово, именно то, что я искал. Только другой вопрос, который у меня есть, это расширение .FILE, которое может меняться, но есть только конкретные, о которых я забочусь, т. Е. (.ABC, .CDE, .FAS, .CAD). Как я могу это поддержать? – shuniar
Используйте шаблон: ''^[A-Z] {3} [0-9] {6} [.] (FILE | ADC | CDE | FAS | CAD) $ ". – GavinCattell