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); } } }