我正在制作幻灯片类,我需要从列表中返回所有值(String类型)(使用File类型的元素)。我使用File [counter] .getAbsolutePath()来获取稍后我需要的String。但是,我需要获取通过File的路径的所有值。
public String getFilesFromDirectory(String path) {
File thisDirectory = new File(path);
File[] listDirFiles = thisDirectory.listFiles()
while (count < listDirFiles.length-1)
if(listDirFiles[count].isFile() || listDirFiles[count].isDirectory() || listDirFiles[count].isHidden()){
count++;
System.out.println(listDirFiles[count].getAbsolutePath());
}
return listDirFiles[count].getAbsolutePath();
计数为0
答案 0 :(得分:0)
据我所知,你想要返回目录中所有可用文件的绝对路径。
所以我建议返回一个字符串列表List<String>
而不是单个字符串。然后你的代码应该是这样的:
public List<String> getFilesFromDirectory(String path) {
List<String> filePaths = new ArrayList<String>();
File thisDirectory = new File(path);
File[] listDirFiles = thisDirectory.listFiles()
// i would choose a for each loop for this instead of while...
for(File file : listDirFiles) {
if(file.isFile() || file.isDirectory() || file.isHidden()) {
// add the path to the list
filePaths.add(file.getAbsolutePath());
}
}
return filePaths;
}
答案 1 :(得分:0)
你需要迭代你的&#34; listDirFiles&#34;,得到de String并保存在字符串的集合(List / Set / Array)中并返回该集合。
示例:
List<String> filesPath = new ArrayList<>();
for(int x=0; x<listDirFiles.lenght; x++){
filesPath.add(listDirFiles[x].getAbsolutePath());
}
return filesPath;
您也可以使用Lambda表达式https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html