我需要一些帮助。
我使用此代码将文件夹中的文件作为数组获取。
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 +"\\", "");
工作。
答案 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();