借鉴网络资料整理而成

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FilesNameUtil {

    private static final String separator = File.separator; // 分隔符,windows是"\",linux是"/"

    public static void main(String[] args) {
        String filePath = "G:/测试";  // 文件路径
        String fileType = "xls"; // 文件类型
//      System.err.println(getFileNameList(filePath)); // 获取指定路径下的所有文件名(单层)
//      System.err.println(getFileNameList(filePath, fileType)); // 获取指定路径下的指定类型的所有文件名(单层)
//      
        System.err.println(getFolderlList(filePath, null)); // 获取指定目录下的所有目录(多层,全路径)
//      System.err.println(getFileList(filePath, null)); // 获取指定路径下的所有文件(多层)
//
//      System.err.println(getFileAbsolutePathList(filePath, null)); // 获取指定路径下的所有文件名(多层,绝对路径)
        System.err.println(getFileAbsolutePathList(filePath, fileType, null)); // 获取指定路径下的所有指定类型文件的全名称(多层,绝对路径)
    }

    /**
     * 
功能:
获取指定路径下的所有文件名(单层) * @param filePath 文件路径(全路径) * @return List */ public static List getFileNameList(String filePath) { List fileNamelist = new ArrayList(); File dir = new File(filePath); File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组 if (files != null) { for (int i = 0; i < files.length; i++) { String fileName = files[i].getName(); // 获取文件名 if (files[i].isDirectory() == false) { // 判断是文件还是文件夹 System.out.println(fileName); fileNamelist.add(fileName); } } } return fileNamelist; } /** *
功能:
获取指定路径下的指定类型的所有文件名(单层) * @param filePath 文件路径(全路径) * @param fileType 文件类型 * @return List */ public static List getFileNameList(String filePath,String fileType) { List fileNamelist = new ArrayList(); File dir = new File(filePath); File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组 if (files != null) { for (int i = 0; i < files.length; i++) { String fileName = files[i].getName(); // 获取文件名 // 判断是文件还是文件夹,并且是否是指定类型的文件 if (files[i].isDirectory() == false && fileName.endsWith(fileType)) { System.out.println(fileName); fileNamelist.add(fileName); } } } return fileNamelist; } /** *
功能:
获取指定目录下的所有目录(多层,全路径) * @param filePath * @param filelist * @return List */ public static List getFolderlList(String filePath,List folderllist) { if (null == folderllist) { folderllist = new ArrayList(); } File dir = new File(filePath); File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组 if (files != null) { for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) { // 判断是文件还是文件夹 String fileAbsolutePath = files[i].getAbsolutePath(); System.out.println("---" + fileAbsolutePath); folderllist.add(fileAbsolutePath); getFolderlList(fileAbsolutePath,folderllist); // 获取文件绝对路径 } } } return folderllist; } /** *
功能:
获取指定路径下的所有文件(多层) * @param filePath 指定文件路径 * @return List */ public static List getFileList(String filePath,List filelist) { if (null == filelist) { filelist = new ArrayList(); } File dir = new File(filePath); File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组 if (files != null) { for (int i = 0; i < files.length; i++) { String fileAbsolutePath = files[i].getAbsolutePath(); // 获取文件绝对路径 if (files[i].isDirectory()) { // 判断是文件还是文件夹 getFileList(fileAbsolutePath,filelist); } else { System.out.println("---" + fileAbsolutePath); filelist.add(files[i]); } } } return filelist; } /** *
功能:
获取指定路径下的所有文件名(多层,绝对路径) * @param filePath 指定文件路径 * @return List */ public static List getFileAbsolutePathList(String filePath,List filelist) { if (null == filelist) { filelist = new ArrayList(); } File dir = new File(filePath); File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组 if (files != null) { for (int i = 0; i < files.length; i++) { String fileAbsolutePath = files[i].getAbsolutePath(); // 获取文件绝对路径 if (files[i].isDirectory()) { // 判断是文件还是文件夹 getFileAbsolutePathList(fileAbsolutePath,filelist); } else { System.out.println("---" + fileAbsolutePath); filelist.add(fileAbsolutePath); } } } return filelist; } /** *
功能:
获取指定路径下的所有指定类型文件的全名称(多层,绝对路径) * @param filePath 指定文件路径 * @param fileType 文件类型 * @param filelist 用来存放数据的集合 * @return List */ public static List getFileAbsolutePathList(String filePath,String fileType,List filelist) { if (null == filelist) { filelist = new ArrayList(); } File dir = new File(filePath); File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组 if (files != null) { for (int i = 0; i < files.length; i++) { String fileName = files[i].getName(); // 获取文件名 String fileAbsolutePath = files[i].getAbsolutePath(); // 获取文件绝对路径 if (files[i].isDirectory()) { // 判断是文件还是文件夹 getFileAbsolutePathList(fileAbsolutePath,fileType,filelist); // 获取文件绝对路径 } else if (fileName.endsWith(fileType)) { System.out.println("---" + fileAbsolutePath); filelist.add(fileAbsolutePath); } } } return filelist; } /** * 通过文件路径直接修改文件名 * @param filePath 需要修改的文件的完整路径 * @param newFileName 需要修改的文件的名称 * @return */ public static String FixFileName(String filePath, String newFileName) { File f = new File(filePath); if (!f.exists()) { // 判断原文件是否存在 return null; } newFileName = newFileName.trim(); if ("".equals(newFileName) || newFileName == null) // 文件名不能为空 return null; String newFilePath = null; if (f.isDirectory()) { // 判断是否为文件夹 newFilePath = filePath.substring(0, filePath.lastIndexOf(separator)) + separator + newFileName; } else { newFilePath = filePath.substring(0, filePath.lastIndexOf(separator))+ separator + newFileName + filePath.substring(filePath.lastIndexOf(".")); } File nf = new File(newFilePath); if (!f.exists()) { // 判断需要修改为的文件是否存在(防止文件名冲突) return null; } try { f.renameTo(nf); // 修改文件名 } catch(Exception err) { err.printStackTrace(); return null; } return newFilePath; } }