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[] 数组实现它将使我能够计算用户拖放的文件数量。
最佳答案
一个List
总体来说比较灵活。但是,在这种情况下,您可以用以下代码替换困惑的字符串分割代码:
String[] files = dir.split(", ");
这也涉及使用 List
的原因之一。如果您想使用 List
无论如何:
List<String> files = Arrays.asList(dir.split(", "));
请注意,这是 List<String>
而不是List<File>
,但这并不重要。
关于Java File[] 或 List<File> 还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53491986/