java怎样获得某个目录下所有文件的文件名
java中获得一个文件夹中的所有文件名代码如下:
package com.readfile;
import java.io.File;public class GetAllFiles {
public static void main(String[] args) {
//路径 这里写一个路径进去
String path="F:\\QQ文档";
//调用方法
getFiles(path);
}
/**
* 递归获取某路径下的所有文件,文件夹,并输出
*/
public static void getFiles(String path) {
File file = new File(path);
// 如果这个路径是文件夹
if (file.isDirectory()) {
// 获取路径下的所有文件
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
// 如果还是文件夹 递归获取里面的文件 文件夹
if (files[i].isDirectory()) {
System.out.println("目录:" + files[i].getPath());
getFiles(files[i].getPath());
} else {
System.out.println("文件:" + files[i].getPath());
}
}
} else {
System.out.println("文件:" + file.getPath());
}
}
}
扩展资料:
如果想要获得当前文件中的文件名只需要String [] fileName = file.list();就可以了。
如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。
其中public static String [] getFileName(String path)是只得到当前文件中的文件名。
public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。
参考资料:
import java.io.*;
public class Example12 {
public static void main(String[] args) throws Exception {
File file = new File("D:\\eclipseWorkspace\\JavaBasicWorkspace\\chapter07"); // 创建File对象
if (file.isDirectory()) { // 判断File对象对应的目录是否存在
String[] names = file.list(); // 获得目录下的所有文件的文件名
for (String name : names) {
System.out.println(name); // 输出文件名
}
}
}
}
import java.io.File;
/**
* 2016年9月2日下午5:42:55
*
* @author 3306 TODO Have fun
*
*/
public class FileUtil {
public static void main(String[] args) {
String path = "D://";
for (String file : findFileNames(path)) {
System.out.println(file);
}
}
/**
* 获取文件夹下面所有的文件(包括文件夹)
*
* @param path
* 磁盘路径
* @return 字符串数组
*/
public static String[] findFileNames(String path) {
String[] fileNameArr = {};
File file = new File(path);
if (file.exists()) {
fileNameArr = file.list();
}
return fileNameArr;
}
}
import java.io.File;
import java.util.ArrayList;
public class FileTest {
private static ArrayList<String> filelist = new ArrayList<String>();
public static void main( String[] args ) throws Exception
{
String filePath = "E://Struts2";
getFiles( filePath );
}
/*
* 通过递归得到某一路径下所有的目录及其文件
*/
static void getFiles( String filePath )
{
File root = new File( filePath );
File[] files = root.listFiles();
for ( File file : files )
{
if ( file.isDirectory() )
{
/*
* 递归调用
*/
getFiles( file.getAbsolutePath() );
filelist.add( file.getAbsolutePath() );
System.out.println( "显示" + filePath + "下所有子目录及其文件" + file.getAbsolutePath() );
}else{
System.out.println( "显示" + filePath + "下所有子目录" + file.getAbsolutePath() );
}
}
}
}
推荐于2017-12-11
如下代码使用递归算法遍历某个目录下的所有文件,并输出文件名
import java.io.File;
import java.util.ArrayList;
public class FileTest {
private static ArrayList<String> filelist = new ArrayList<String>();
public static void main( String[] args ) throws Exception
{
String filePath = "E://Struts2";
getFiles( filePath );
}
/*
* 通过递归得到某一路径下所有的目录及其文件
*/
static void getFiles( String filePath )
{
File root = new File( filePath );
File[] files = root.listFiles();
for ( File file : files )
{
if ( file.isDirectory() )
{
/*
* 递归调用
*/
getFiles( file.getAbsolutePath() );
filelist.add( file.getAbsolutePath() );
System.out.println( "显示" + filePath + "下所有子目录及其文件" + file.getAbsolutePath() );
}else{
System.out.println( "显示" + filePath + "下所有子目录" + file.getAbsolutePath() );
}
}
}
}