将文件数组转换为字符串数组JAVA

时间:2014-12-17 09:23:11

标签: java

我需要一些帮助。

我使用此代码将文件夹中的文件作为数组获取。

String fileDir = Directorty;
File dir = new File(fileDir);
FileFilter fileFilter = new WildcardFileFilter("*.html");
files = dir.listFiles(fileFilter);

但我想写一个文件只包含该文件夹中的文件,而不是路径。 结果是:

[C:\Askeladden-17-12-2014\.html, C:\Askeladden-17-12-2014\barnetv.html, C:\Askeladden-17-12-2014\britiskebiler.html, C:\Askeladden-17-12-2014\danser.html, C:\Askeladden-17-12-2014\disipler.html, C:\Askeladden-17-12-2014\donald.html, C:\Askeladden-17-12-2014\ekvator.html, C:\Askeladden-17-12-2014\engelskspraak.html]

但我希望没有路径

C:\Askeladden-17-12-2014\

我一直在网上寻找答案,但没有运气。 使用这个:

strFiles = Arrays.toString(files);

给出一个字符串,表示为数组,每端都有[],我无法获得

strFiles.replace("C:\\Askleladden" + date +"\\", "");

工作。

4 个答案:

答案 0 :(得分:8)

您必须迭代文件数组并为每个文件调用getName()

String[] names = new String[files.length];
for (int i = 0; i < files.length; i++) {
   names[i] = files[i].getName();
}

答案 1 :(得分:1)

请在下面找到适当的评论解决方案。

import java.io.File;
import java.io.FileFilter;
public class fileNames {
    public static void main(String args[]){
        //Get the Directory of the FOLDER
        String fileDir = "/MyData/StudyDocs/";
        // Save it in a File object 
        File dir = new File(fileDir);
        //FileFilter fileFilter = new WildcardFileFilter("*.html");
        //Capture the list of Files in the Array
        File[] files = dir.listFiles();
        for(int i = 0; i < files.length; i++){
            System.out.println(files[i].getName());
        }
    }
}

答案 2 :(得分:0)

使用File s getName()方法:

File file = new File("myFolder/myFile.png");
System.out.println(file.getName()); //Prints out myFile.png

答案 3 :(得分:0)

Java 1.8,如果你想得到List,只需删除强制转换和数组

String[] files = (String[])Arrays.asList(dir.listFiles(filefilter)) .stream().map(x->x.getName()) .collect(Collectors.toList()) .toArray();