2013-04-03 1 views
0

указать пример кода для получения файлов текущей даты или даты в файле выбора или диалога файла? Мне нужно фильтровать файлы с датой в диалоговом окне файла?Фильтр даты или времени фильтра свинг-файла Java

+0

Попробуйте что-то сам, пожалуйста, Намек - проверить, можно ли использовать фильтр файлов –

+0

Пытались ли вы что-нибудь – subodh

+0

я .. но я не могу фильтровать с датой в файле..? dialog – karthik

ответ

1

Прежде всего, я не уверен, если есть существующий фильтр файлов с использованием даты, поэтому лучшее и быстрое решение для меня было реализовать собственный фильтр:

public class DateFileFilter extends FileFilter 
{  
    public boolean accept(File file) 
    { 
      GregorianCalendar date = new GregorianCalendar();//I get the today value 

      GregorianCalendar fileDate = new GregorianCalendar(); 
      fileDate.setTimeInMillis(file.lastModified());//Here I get date info of the file 

      //Compare the current month and year 
      //with the month and yearthe file was 
      //last modified 
      return (((date.get(GregorianCalendar.MONTH) == 
       fileDate.get(GregorianCalendar.MONTH)) && 
       (date.get(GregorianCalendar.YEAR) == 
       fileDate.get(GregorianCalendar.YEAR))) || 
       file.isDirectory()); 
    } 

    public String getDescription() 
    { 
     return "This is my filter for dates (:"; 
    } 
} 

Затем вы можете добавить свой фильтр к JFileChooser:

JFileChooser jf = new JFileChooser(); 
jf.setFileFilter(/*HERE MY DATE FILTER*/); 

для File Dialog, этот процесс должен быть похож:

DateFileFilter filter = new DateFileFilter(); 
FileDialog dialog = new FileDialog(parent, "Choose File"); 

     dialog.setFilenameFilter(filter); 

     dialog.show(); 

     String selectedFile = dialog.getFile(); 

Но я думаю, что вы также можете реализовать интерфейс «Фильтр», а не «расширять».

Надеется, что это помогает, наилучшие пожеланиям (:

+0

Почему использование 'GregorianCalendar'? Вы должны использовать' Calendar.getInstance() ', еще лучше, просто используйте' new Date() '.' Date' (и 'Calendar') имеют методы' before', 'after' и' compareTo' для сравнения объектов 'Date'. Кажется, что большая часть дополнительной работы для небольшого выигрыша - IMHO – MadProgrammer

+0

вы можете сделать то же самое для диалогового окна файлов? – karthik

+0

Я сделал редактирование, надеюсь, что это вам поможет. @M adProgrammer, спасибо за ваше наблюдение, я буду рассматривать его для рефакторинга моего кода. –

Смежные вопросы