繁体   English   中英

从列表中提取文件名

[英]Extract file name from list

在循环期间,我的列表包含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
    }
}

您可以这样重写。

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
        }
    }

我可以通过3种方式想到仅提取文件名的位置。

  1. 使用Apache Commons库

     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); } 

您可以替换csvFiles.add(file.getName()); csvFiles.add(); 与上述任何一行一样带有参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM