我有一个String数组,其中包含路径的文件(文件和文件夹)列表:
File directory = new File(path);
String[] fileNames = directory.list();
当我尝试阅读文件内容时:
for (int i = 0; i < fileNames.length; i++) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(path + "\\" + fileNames[i]), "UTF-8"));
如果文件是文件夹,我会收到FileNotFoundException。 如果文件名属于文件夹,我怎么知道呢。也许是按文件的大小?
答案 0 :(得分:4)
您可以使用File#isDirectory
方法测试file
是否为directory
。
File file = new File("test");
System.out.println(file.isDirectory());
或者,您可以使用File#listFiles
方法。它只返回目录中的files
。这样,您就不必检查file
是否为directory
。
File directory = new File(path);
String[] fileNames = directory.listFiles();
答案 1 :(得分:3)
file.isDirectory()
正是您要找的。 p>
答案 2 :(得分:2)
您可以使用File
班级的isDirectory() method
答案 3 :(得分:2)
您可以像这样使用您的代码
for (int i = 0; i < fileNames.length; i++) {
if(fileNames[i].isFile()){
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(path + "\\" + fileNames[i]), "UTF-8"));
}
}