从列表中提取文件名

时间:2016-12-28 09:09:23

标签: java list file for-loop filelist

在循环期间,我的列表包含csv文件,我想获取文件名,我将在其中保存输出。

示例

文件列表:t1.csvt2.csvt3.csv

输出列表应该显示为:t1.xml, t2.xml, t3.xml

sample.java

List<String> csvFiles = new ArrayList<String>();                            
try {
    File[] files = new File(textCSV.getText()).listFiles();
    for (File file : files) {
        if (file.isFile()) {
            csvFiles.add(file.getName());
        }
    }
    for(int i=0;i<csvFiles.size();i++) {
        System.out.println(csvFiles.get(i));                        
        String Output = ".xml" //how to put here csv name
    }
}

2 个答案:

答案 0 :(得分:1)

你可以像这样重写。

List<String> csvFiles = new ArrayList<String>();                            
    try {
        File[] files = new File(textCSV.getText()).listFiles();
        for (File file : files) {
            if (file.isFile()) {
                csvFiles.add(file.getName());
            }
        }
        for(int i=0;i<csvFiles.size();i++)
        {
           System.out.println(csvFiles.get(i));             

           String Output = csvFiles.get(i).substring(0, csvFiles.get(i).indexOf(".")) + ".xml" //how to put here csv name
        }
    }

答案 1 :(得分:1)

我可以想到3种方法,你只能提取文件名。

  1. 使用Apache Commons Library

    FilenameUtils.removeExtension(file.getName());
    
  2. 如果您的文件始终至少包含一个扩展程序(文件名中至少有一个“。”)

    file.getName().substring(0, file.getName().lastIndexOf("."));
    
  3. 如果文件中不包含任何扩展名

    int index = file.getName().lastIndexOf(".");
    if (index == -1) {
        file.getName();
    } else {
        file.getName().substring(0, index);
    }
    
  4. 您可以将csvFiles.add(file.getName());替换为csvFiles.add();,并将参数替换为以上任意一行。