Java获取目录下以及该目录下子目录所有的文件名
package com.yangchen.test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class GetFileName {
public static void main(String[] args) {
List<String> fileNames = getFileNames("E:\\testFile");
try {
writeTxtFile(fileNames);
} catch (IOException e) {
e.printStackTrace();
}
}
public static List<String> getFileNames(String path) {
ArrayList<String> fileNames = new ArrayList<>();
File file = new File(path);
List<String> strings = getDirFileNames(fileNames, file);
return strings;
}
public static List<String> getDirFileNames(ArrayList<String> fileNames, File file) {
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
String fileName = tempList[i].getName();
fileNames.add(fileName);
}
if (tempList[i].isDirectory()) {
getDirFileNames(fileNames, tempList[i]);
}
}
return fileNames;
}
public static void writeTxtFile( List<String> fileNames) throws IOException {
FileWriter fileWriter = new FileWriter("D:\\Result.txt");
for (String fileName : fileNames) {
int lastIndex = fileName.lastIndexOf("-");
String fileShortName = null;
if (lastIndex < 0) {
fileShortName = fileName;
} else {
fileShortName = fileName.substring(0, lastIndex);
}
fileWriter.write(fileName + " " + fileShortName + "\n");
}
fileWriter.flush();
fileWriter.close();
}
}