2015-04-24 2 views
0

Я хочу выбрать все файлы, чтобы они не отображались в моем FileDialog.Как выбрать все файлы в FileDialog?

 FileDialog fileDialog = new FileDialog(this, "Some Title", FileDialog.LOAD); 
    fileDialog.setFilenameFilter(new FilenameFilter() { 
     @Override 
     public boolean accept(File dir, String name) { 
      if(name.endsWith(".*")) { 
       return false; 
      }else { 
       return true; 
      } 
     } 
    }); 
    fileDialog.setVisible(true); 

В моем коде вы можете увидеть, что я пытаюсь к тому, что с String «*», чтобы выбрать все файлы. Однако это не работает, и я не знаю, почему. Я только хочу показать каталоги.

Благодарим за помощь!

+1

Что вы получаете от этого? – Joop

+0

Почему вы хотите исключить все файлы? Вы просто хотите показать каталоги? – copeg

+0

Он просто показывает все, файлы и каталоги. Я думаю, что оператор «*» не работает внутри строки. – Algram

ответ

0

Как я уже говорил, я нашел ответ на этот вопрос с помощью @JigarJoshi.

Это рабочий код, чтобы показать только каталоги на AWT FileDialog:

fileDialog.setFilenameFilter(new FilenameFilter() { 
    @Override 
    public boolean accept(File dir, String name) { 
     return dir.isFile(); 
    } 
}); 

Пожалуйста, обратите внимание, что при использовании FileDialog над JFileChooser только рекомендованные, если вы находитесь на системе без Windows. Однако на Mac и Linux вы должны использовать FileDialog, поскольку он выглядит более родным.

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

1

Вы можете использовать JFileChooser, используя FileFilter проверить объект File, чтобы увидеть, если это каталог

@Override 
    public boolean accept(File file) { 
    return file.isDirectory(); 
    } 

FileFilter A FileDialog должен работать аналогичным образом. Также обратите внимание на API для метода FileDialog's setFileFilter:

«Фильтры имен файлов не работают в эталонной реализации Sun для Microsoft Windows».

+0

Вы также неправильно поняли, как работает метод :) Это 'return file.isFile()' – Algram

+0

'Да, я хочу показывать только каталоги'. Использование _return file.isDirectory() _ будет показывать только каталоги. Использование _return file.isFile() _ будет показывать только файлы. Что он? – copeg

+0

Нет, поскольку FileDialog.setFilenameFilter() требует FileNAMEFilter, а не FileFilter. Этот FileNameFilter работает по-разному, потому что «Файл», который он ожидает в «accept» -Method, фактически является каталогом. Вот почему я тоже смутился. – Algram

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