FilesNameUtil获取文件名称工具类

借鉴网络资料整理而成

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

原文地址:http://blog.51cto.com/1197822/2332211

时间: 2024-08-16 14:33:34

FilesNameUtil获取文件名称工具类的相关文章

iOS开发拓展篇—封装音频文件播放工具类

一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; - (id)initWithData:(NSData *)data error:(NSError **)outError; 准备播放(缓冲,提高播放的流畅性) - (BOOL)prepareToPlay;

list集合、txt文件对比的工具类和文件读写工具类

工作上经常会遇到处理大数据的问题,下面两个工具类,是在处理大数据时编写的:推荐的是使用map的方式处理两个list数据,如果遇到list相当大数据这个方法就起到了作用,当时处理了两个十万级的list,使用改方法的变种搞定. 1.txt文件.list集合比较工具 <span style="font-family:KaiTi_GB2312;font-size:18px;">package com.hudong.util.other; import java.util.Colle

httputil用http获取请求的工具类

原文:httputil用http获取请求的工具类 源代码下载地址:http://www.zuidaima.com/share/1550463738612736.htm package com.zuidaima.xiaocan.demo.util; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; import java.util.

Android 文件读写工具类

自己写的工具类,写的不好,慢慢修改. 记得加上权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> package com.sy.utils; import android.con

Java 压缩文件夹工具类(包含解压)

依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.18</version> </dependency> CompressUtils.java package utils; import java.io.BufferedInputStream;

Bash Shell 解析路径获取文件名称和文件夹名

前言 还是今天再写一个自己主动化打包脚本.用到了从路径名中获取最后的文件名称.这里记录一下实现过程. 当然,最后我也会给出官方的做法.(ps:非常囧,实现完了才发现原来Bash Shell有现成的函数) 获取文件名称 如果给定的路径名为: /tmp/csdn/zhengyi/test/zhengyi.txt awk解法 用"/"做分隔符,然后打印出最后的那一部分. 实现代码例如以下: resFile=`echo /tmp/csdn/zhengyi/test/adb.log | awk

文件夹工具类 - FolderUtils

文件夹工具类,提供创建完整路径的方法. 源码如下:(点击下载 -FolderUtils.java .commons-io-2.4.jar ) import java.io.File; import org.apache.commons.io.FilenameUtils; /** * 文件夹工具 * */ public class FolderUtils { /** * 创建完整路径 * * @param path * a {@link java.lang.String} object. */ p

读取资源文件的工具类.

import java.util.ResourceBundle; import org.springframework.util.NumberUtils; /**读取资源文件的工具类. */ public class ConfigUtil { /**读取资源文件中的键值信息. * 例如有键值名为a,其对应的值为整数类型,那么方法即为:readConfigForObject("a",Integer.class). * @param keyName 键值名 * @param require

Android之文件读写工具类

本工具类永久维护,永久更新,如果各位读者发现有bug或者不合理之处,欢迎指正,博主将第一时间改正. 以下是主要内容,本类主要功能有: 1.创建文件功能: 2.向文件中写入字节数组: 3.向文件中写入字符串: 4.从文件中读取字节数组: 5.从文件中读取字符串: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; /** * 文件读写工具类 * * @author bear *