pom.xml添加配置信息java
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
工具类linux
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是"/" /** * <h5>功能:验证文件夹是否存在</h5> * * @param filePath 指定的文件夹绝对路径 * @return */ public static boolean validateFileDir(String filePath) { Boolean flag = false; //判断文件路径是否存在 File fileDir = new File(filePath); if (fileDir.exists()) { flag = true; } return flag; } /** * <h5>功能:</h5>获取指定目录下的全部文件名(单层,仅文件名称) * @param filePath 指定的文件夹目录(全路径) * @return List<String> */ public static List<String> getFileNameList(String filePath) { List<String> fileNamelist = new ArrayList<String>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> listFiles = FileUtils.listFiles(new File(filePath), null, false); for (File file : listFiles) { fileNamelist.add(file.getName()); } } return fileNamelist; } /** * <h5>功能:</h5>获取指定目录下的指定类型的全部文件名(单层,仅文件名称) * @param filePath 指定的文件目录(全路径) * @param fileType 文件类型 * @return List<String> */ public static List<String> getFileNameList(String filePath, String fileType) { return getFileNameList(filePath, new String[] {fileType}); } /** * <h5>功能:</h5>获取指定目录下的指定类型(可多个)的全部文件名(单层,仅文件名称) * @param filePath 指定的文件目录(全路径) * @param fileType 文件类型,数组 * @return List<String> */ public static List<String> getFileNameList(String filePath,String[] fileType) { List<String> fileNamelist = new ArrayList<String>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> listFiles = FileUtils.listFiles(new File(filePath), fileType, false); for (File file : listFiles) { fileNamelist.add(file.getName()); } } return fileNamelist; } /** * <h5>功能:</h5>获取指定目录下的全部目录(多层,全路径) * @param filePath 指定的目录(全路径) * @return List<String> */ public static List<String> getFolderlList(String filePath) { List<String> folderllist = new ArrayList<String>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> listFilesAndDirs = FileUtils.listFilesAndDirs( new File(filePath), new NotFileFilter(TrueFileFilter.INSTANCE), DirectoryFileFilter.DIRECTORY); for (File file : listFilesAndDirs) { folderllist.add(file.getPath()); } } return folderllist; } /** * <h5>功能:</h5>获取指定目录下的全部文件名(多层,绝对路径) * @param filePath 指定文件目录 * @return List<String> */ public static List<String> getFileAbsolutePathList(String filePath) { List<String> fileNamelist = new ArrayList<String>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> listFiles = FileUtils.listFiles(new File(filePath), null, true); for (File file : listFiles) { fileNamelist.add(file.getPath()); } } return fileNamelist; } /** * <h5>功能:</h5>获取指定目录下的指定类型文件的全名称(多层,绝对路径) * @param filePath 指定文件目录 * @param fileType 文件类型 * @return List<String> */ public static List<String> getFileAbsolutePathList(String filePath,String fileType) { return getFileAbsolutePathList(filePath, new String[] {fileType}); } /** * <h5>功能:</h5>获取指定目录下的指定类型(可多个)文件的全名称(多层,绝对路径) * @param filePath 指定文件目录 * @param fileType 文件类型,数组 * @return List<String> */ public static List<String> getFileAbsolutePathList(String filePath,String[] fileType) { List<String> fileNamelist = new ArrayList<String>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> listFiles = FileUtils.listFiles(new File(filePath), fileType, true); for (File file : listFiles) { fileNamelist.add(file.getName()); } } return fileNamelist; } /** * <h5>功能:</h5>获取指定目录下的全部文件(多层) * @param filePath 指定文件目录 * @return List<File> */ public static List<File> getFileList(String filePath) { List<File> fileList = new ArrayList<File>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> listFiles = FileUtils.listFiles(new File(filePath), null, true); for (File file : listFiles) { fileList.add(file); } } return fileList; } /** * <h5>功能:获取指定目录下指定类型的全部文件(多层)</h5> * * @param filePath * @param fileType * @return */ public static List<File> getFileList(String filePath, String fileType) { return getFileList(filePath, new String[] {fileType}); } /** * <h5>功能:获取指定目录下指定类型(可多个)的全部文件(多层)</h5> * * @param filePath * @param fileType * @return */ public static List<File> getFileList(String filePath, String[] fileType) { List<File> fileList = new ArrayList<File>(); // 验证文件夹是否存在 boolean flag = validateFileDir(filePath); if (flag) { Collection<File> 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; } /** * <h5>功能:删除指定文件</h5> * * @param delFileName * @return */ public static boolean deleteFile(String delFileName) { File file = new File(delFileName); return file.delete(); } /** * <h5>功能:删除集合中以指定前缀名开头的文件</h5> * * @param list 文件名称集合 * @param filePath 指定被删除文件的目录 * @param delFileName 指定被删除的文件名(同名便可,可不一样类型) */ public static void deleteFile(List<File> 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<String> fileNameList = getFileNameList(filePath); for (String fileName : fileNameList) { System.out.println(fileName); } } }