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;
}
}
}
我正在实现一种通过目录路径解析来获取文件列表的方法。字符串目录将包含文件目录。这取决于用户将多少文件拖放到程序上。由于我将文件信息存储为表格格式,因此必须将其存储为数组格式或其他数据结构。有什么建议吗?
最重要的问题是,我应该使用File []数组来实现它吗?或清单?我知道使用File []数组实现它可以让我计算用户拖放的文件数。
答案 0 :(得分:1)
List
通常更灵活。但是,在这种情况下,您可以使用以下代码替换该凌乱的字符串拆分代码:
String[] files = dir.split(", ");
还处理了使用List
的原因之一。而且如果您仍然想使用List
:
List<String> files = Arrays.asList(dir.split(", "));
请注意,这是List<String>
而不是List<File>
,但这没关系。
答案 1 :(得分:0)
列表更灵活,数组更受约束。如果您没有其他特殊原因,则使用列表为首选。