为了账号安全,请及时绑定邮箱和手机立即绑定

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;

    }

}

©著作权归作者所有:来自51CTO博客作者pannijingling的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消