pom.xml添加配置信息


    commons-io
    commons-io
    2.4

工具类

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

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.NotFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;

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

    /**
     * 
功能:验证文件夹是否存在
* * @param filePath 指定的文件夹绝对路径 * @return */ public static boolean validateFileDir(String filePath) { Boolean flag = false; //判断文件路径是否存在 File fileDir = new File(filePath); if (fileDir.exists()) { flag = true; } return flag; } /** *
功能:
获取指定目录下的所有文件名(单层,仅文件名称) * @param filePath 指定的文件夹目录(全路径) * @return List */ public static List getFileNameList(String filePath) { List fileNamelist = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFiles = FileUtils.listFiles(new File(filePath), null, false); for (File file : listFiles) { fileNamelist.add(file.getName()); } } return fileNamelist; } /** *
功能:
获取指定目录下的指定类型的所有文件名(单层,仅文件名称) * @param filePath 指定的文件目录(全路径) * @param fileType 文件类型 * @return List */ public static List getFileNameList(String filePath, String fileType) { return getFileNameList(filePath, new String[] {fileType}); } /** *
功能:
获取指定目录下的指定类型(可多个)的所有文件名(单层,仅文件名称) * @param filePath 指定的文件目录(全路径) * @param fileType 文件类型,数组 * @return List */ public static List getFileNameList(String filePath,String[] fileType) { List fileNamelist = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFiles = FileUtils.listFiles(new File(filePath), fileType, false); for (File file : listFiles) { fileNamelist.add(file.getName()); } } return fileNamelist; } /** *
功能:
获取指定目录下的所有目录(多层,全路径) * @param filePath 指定的目录(全路径) * @return List */ public static List getFolderlList(String filePath) { List folderllist = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFilesAndDirs = FileUtils.listFilesAndDirs( new File(filePath), new NotFileFilter(TrueFileFilter.INSTANCE), DirectoryFileFilter.DIRECTORY); for (File file : listFilesAndDirs) { folderllist.add(file.getPath()); } } return folderllist; } /** *
功能:
获取指定目录下的所有文件名(多层,绝对路径) * @param filePath 指定文件目录 * @return List */ public static List getFileAbsolutePathList(String filePath) { List fileNamelist = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFiles = FileUtils.listFiles(new File(filePath), null, true); for (File file : listFiles) { fileNamelist.add(file.getPath()); } } return fileNamelist; } /** *
功能:
获取指定目录下的指定类型文件的全名称(多层,绝对路径) * @param filePath 指定文件目录 * @param fileType 文件类型 * @return List */ public static List getFileAbsolutePathList(String filePath,String fileType) { return getFileAbsolutePathList(filePath, new String[] {fileType}); } /** *
功能:
获取指定目录下的指定类型(可多个)文件的全名称(多层,绝对路径) * @param filePath 指定文件目录 * @param fileType 文件类型,数组 * @return List */ public static List getFileAbsolutePathList(String filePath,String[] fileType) { List fileNamelist = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFiles = FileUtils.listFiles(new File(filePath), fileType, true); for (File file : listFiles) { fileNamelist.add(file.getName()); } } return fileNamelist; } /** *
功能:
获取指定目录下的所有文件(多层) * @param filePath 指定文件目录 * @return List */ public static List getFileList(String filePath) { List fileList = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFiles = FileUtils.listFiles(new File(filePath), null, true); for (File file : listFiles) { fileList.add(file); } } return fileList; } /** *
功能:获取指定目录下指定类型的所有文件(多层)
* * @param filePath * @param fileType * @return */ public static List getFileList(String filePath, String fileType) { return getFileList(filePath, new String[] {fileType}); } /** *
功能:获取指定目录下指定类型(可多个)的所有文件(多层)
* * @param filePath * @param fileType * @return */ public static List getFileList(String filePath, String[] fileType) { List fileList = new ArrayList(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection listFiles = FileUtils.listFiles(new File(filePath), fileType, true); for (File file : listFiles) { fileList.add(file); } } return fileList; } /** * 通过文件完整路径直接修改文件名 * @param filePath 需要修改的文件的完整路径 * @param newFileName 需要修改的文件的名称 * @return */ public static String FixFileName(String filePath, String newFileName) { File oldFile = new File(filePath); if (!oldFile.exists()) { // 判断原文件是否存在 return null; } newFileName = newFileName.trim(); if ("".equals(newFileName) || newFileName == null) // 文件名不能为空 return null; String newFilePath = null; if (oldFile.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 newFile = new File(newFilePath); if (!oldFile.exists()) { // 判断需要修改为的文件是否存在(防止文件名冲突) return null; } try { oldFile.renameTo(newFile); // 修改文件名 } catch(Exception err) { err.printStackTrace(); return null; } return newFilePath; } /** *
功能:删除指定文件
* * @param delFileName * @return */ public static boolean deleteFile(String delFileName) { File file = new File(delFileName); return file.delete(); } /** *
功能:删除集合中以指定前缀名开头的文件
* * @param list 文件名称集合 * @param filePath 指定被删除文件的目录 * @param delFileName 指定被删除的文件名(同名即可,可不同类型) */ public static void deleteFile(List list, String filePath ,String delFileName) { for (int i = 0; i < list.size(); i++) { if (list.get(i).getName().startsWith(delFileName)) { deleteFile(filePath + list.get(i).getName()); break; } } } public static void main(String[] args) { String filePath = "e:\\"; List fileNameList = getFileNameList(filePath); for (String fileName : fileNameList) { System.out.println(fileName); } } }