摘要:本文主要向大家介绍了JAVA语言之FilesNameUtil获取文件名称工具类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言之FilesNameUtil获取文件名称工具类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
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)); // 获取指定路径下的所有指定类型文件的全名称(多层,绝对路径)
}
/**
* <h5>功能:</h5>获取指定路径下的所有文件名(单层)
* @param filePath 文件路径(全路径)
* @return List<String>
*/
public static List<String> getFileNameList(String filePath) {
List<String> fileNamelist = new ArrayList<String>();
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;
}
/**
* <h5>功能:</h5>获取指定路径下的指定类型的所有文件名(单层)
* @param filePath 文件路径(全路径)
* @param fileType 文件类型
* @return List<String>
*/
public static List<String> getFileNameList(String filePath,String fileType) {
List<String> fileNamelist = new ArrayList<String>();
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;
}
/**
* <h5>功能:</h5>获取指定目录下的所有目录(多层,全路径)
* @param filePath
* @param filelist
* @return List<String>
*/
public static List<String> getFolderlList(String filePath,List<String> folderllist) {
if (null == folderllist) {
folderllist = new ArrayList<String>();
}
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;
}
/**
* <h5>功能:</h5>获取指定路径下的所有文件(多层)
* @param filePath 指定文件路径
* @return List<File>
*/
public static List<File> getFileList(String filePath,List<File> filelist) {
if (null == filelist) {
filelist = new ArrayList<File>();
}
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;
}
/**
* <h5>功能:</h5>获取指定路径下的所有文件名(多层,绝对路径)
* @param filePath 指定文件路径
* @return List<String>
*/
public static List<String> getFileAbsolutePathList(String filePath,List<String> filelist) {
if (null == filelist) {
filelist = new ArrayList<String>();
}
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;
}
/**
* <h5>功能:</h5>获取指定路径下的所有指定类型文件的全名称(多层,绝对路径)
* @param filePath 指定文件路径
* @param fileType 文件类型
* @param filelist 用来存放数据的集合
* @return List<String>
*/
public static List<String> getFileAbsolutePathList(String filePath,String fileType,List<String> filelist) {
if (null == filelist) {
filelist = new ArrayList<String>();
}
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;
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号