Как получить абсолютный путь к файлам из FileDialog в SWT? - PullRequest
3 голосов
/ 21 февраля 2012

Я использую FileDialog SWT, чтобы позволить пользователю выбрать несколько файлов:

FileDialog dlg = new FileDialog(s, SWT.MULTI);
dlg.setFilterPath(somePath);
String fn = dlg.open();
if (fn != null)
  String [] files = dlg.getFileNames()

Хотя fn возвращает абсолютный путь к каталогу, массив files содержит относительные пути. Я хотел бы получить абсолютный путь для каждого файла. Есть ли способ сделать это в Java, который работает на разных платформах (Win, Linux, MacOS)?

1 Ответ

6 голосов
/ 21 февраля 2012

Вам необходимо добавить имя файла к указанному пути фильтра. Чтобы не беспокоиться о разделителях путей и т.п., вы можете просто использовать класс File. Например:

String[] filenames = dialog.getFileNames();
String filterPath = dialog.getFilterPath();

File[] selectedFiles = new File[filenames.length];

for(int i = 0; i < filenames.length; i++)
{
    if(filterPath != null && filterPath.trim().length() > 0)
    {
        selectedFiles[i] = new File(filterPath, filenames[i]);
    }
    else
    {
        selectedFiles[i] = new File(filenames[i]);
    }
}

Если вам нужен путь как String, вы, конечно, можете использовать метод getAbsolutePath() для результирующих File s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...