Файл Java [] или Список <File>или что-то еще? - PullRequest
0 голосов
/ 27 ноября 2018
public boolean importData(TransferSupport ts) {
  try {
    String dir = ts.getTransferable().getTransferData(DataFlavor.javaFileListFlavor).toString();
    dir = dir.substring(1, dir.length()- 1);
    System.out.println(dir);

    DecimalFormat df = new DecimalFormat("#.#");
    df.setRoundingMode(RoundingMode.CEILING);
    //parsing directory names and converting them into file array
    int lastComma = 0;
    for(int i = 2; i < dir.length(); i++) {
        //System.out.println(dir.substring(i-2,i));
        if(dir.substring(i-2,i).equals(", ")) {
            File file = new File(dir.substring(lastComma,i-2));
            double num = file.length();
            System.out.println(df.format((num/1024)/1024)+"MB");
            lastComma = i; 
        }

    }
}

Я реализую метод, который принимает список файлов путем анализа путей к каталогам.Строка dir будет содержать каталог файлов.Это будет зависеть от того, сколько файлов пользователь перетаскивает в программу.Поскольку я храню информацию о файлах в табличном формате, я должен хранить их в виде массива или какой-либо другой структуры данных.Есть какой-нибудь совет?

самый важный вопрос, должен ли я реализовать это с помощью массива File []?или список?Я знаю, что реализация этого с использованием массива File [] позволит мне подсчитать количество файлов, которые пользователь перетаскивает.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

A List более гибок в целом.Тем не менее, в этом случае вы можете заменить этот грязный код разделения строк следующим:

 String[] files = dir.split(", ");

, что также связано с одной из причин использования List.И если вы все равно хотите использовать List:

 List<String> files = Arrays.asList(dir.split(", "));

Обратите внимание, что это List<String>, а не List<File>, но это не должно иметь значения.

0 голосов
/ 27 ноября 2018

Список более гибкий, массив более ограниченный.Если у вас нет конкретной причины поступить иначе, то List - это первый шаг.

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