我們到底能走多遠系列(2)
遍曆指定路徑下的檔案,檔案和檔案夾需要區分。
為了把檔案名稱和是否為檔案夾記錄下來,實現一個model
package web.method.file.model;public class FileModel { // 是否為檔案夾 private boolean isDirectory; // 檔案名稱 private String fileNmae; public FileModel(boolean isDirectory, String fileNmae) { super(); this.isDirectory = isDirectory; this.fileNmae = fileNmae; } public boolean isDirectory() { return isDirectory; } public void setDirectory(boolean isDirectory) { this.isDirectory = isDirectory; } public String getFileNmae() { return fileNmae; } public void setFileNmae(String fileNmae) { this.fileNmae = fileNmae; } }
遍曆個檔案夾java封裝了方法供使用:
/** * * @param String * path 查詢檔案路徑 * * @return Map<Boolean, String> Boolean->true:檔案夾;false:非檔案夾,String:檔案名稱/檔案夾名 */ private List<FileModel> queryAllFileName(String path) { // 保證path是"/"或"\\"結尾 if ((!path.endsWith(File.pathSeparator)) || (!path.endsWith("\\"))) { path = path + File.pathSeparator; } // 查詢路徑 File filePath = new File(path); // 路徑不存在 if (!filePath.exists()) { return null; } List<FileModel> fileModelList = new ArrayList<FileModel>(); // 路徑不是檔案夾 if (!filePath.isDirectory()) { FileModel file = new FileModel(false, path); fileModelList.add(file); return fileModelList; } // 取得路勁下檔案名稱或檔案夾名 String[] fileNames = filePath.list(); for (int i = 0; i < fileNames.length; i++) { // 判斷是否為檔案夾 if ((new File(path + fileNames[i])).isDirectory()) { fileModelList.add(new FileModel(true, fileNames[i])); } else { fileModelList.add(new FileModel(false, fileNames[i])); } } return fileModelList; }