zoukankan      html  css  js  c++  java
  • FilenameUtils工具类

    转载请出自出处:http://eksliang.iteye.com/blog/2217081

    一、概述

    这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。

    二、commons-io在maven中央仓库的最新版本地址

    Java代码  收藏代码
    1. <dependency>  
    2.       <groupId>commons-io</groupId>  
    3.       <artifactId>commons-io</artifactId>  
    4.       <version>2.4</version>  
    5. </dependency>  

    三、FilenameUtils API操作如下

    Java代码  收藏代码
    1. package com.ickes.filename;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5. import org.apache.commons.io.FilenameUtils;  
    6. import org.apache.commons.io.IOCase;  
    7. /** 
    8.  * org.apache.commons.io.FilenameUtils工具类笔记 
    9.  * @author Ickes 
    10.  */  
    11. public class FilenameUtilsTest {  
    12.     public static void main(String[] args) throws Exception {  
    13.         String fileDirectory = "/D:/aa/bb/cc";   
    14.         String fileName ="file.txt";  
    15.         String fileFullName = fileDirectory +"/"+ fileName;  
    16.         System.out.println("(1)显示linux路径:"+FilenameUtils.normalizeNoEndSeparator(fileFullName));  
    17.         System.out.println("(2)合并目录和文件名为文件全路径:"+FilenameUtils.concat(fileDirectory, fileName));  
    18.         System.out.println("(3)文件路径去除目录和后缀后的文件名:"+FilenameUtils.getBaseName(fileFullName));  
    19.         System.out.println("(4)获取文件的后缀:"+FilenameUtils.getExtension(fileFullName));  
    20.         System.out.println("(5)获取文件的完整目录:"+FilenameUtils.getFullPath(fileFullName));  
    21.         System.out.println("(6)获取文件的目录不包含结束符:"+FilenameUtils.getFullPathNoEndSeparator(fileFullName));  
    22.         System.out.println("(7)获取文件名称,包含后缀:"+FilenameUtils.getName(fileFullName));  
    23.         System.out.println("(8)去除前缀的路径:"+FilenameUtils.getPath(fileFullName));   
    24.         System.out.println("(9)去除前缀并结尾去除分隔符:"+FilenameUtils.getPathNoEndSeparator(fileFullName));  
    25.         System.out.println("(10)获取前缀:"+FilenameUtils.getPrefix(fileFullName));  
    26.         System.out.println("(11)获取前缀长度:"+FilenameUtils.getPrefixLength(fileFullName));  
    27.         System.out.println("(12)获取最后一个.的位置:"+FilenameUtils.indexOfExtension(fileFullName));  
    28.         System.out.println("(13)获取最后一个/的位置:"+FilenameUtils.indexOfLastSeparator(fileFullName));  
    29.         System.out.println("(14)获取当前系统格式化路径:"+FilenameUtils.normalize(fileFullName));  
    30.         System.out.println("(16)获取当前系统无结尾分隔符的路径:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));  
    31.         System.out.println("(17)获取linux系统无结尾分隔符的路径:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));  
    32.         System.out.println("(18)移除文件的扩展名:"+FilenameUtils.removeExtension(fileFullName));  
    33.         System.out.println("(19)转换分隔符为当前系统分隔符:"+FilenameUtils.separatorsToSystem(fileFullName));  
    34.         System.out.println("(20)转换分隔符为linux系统分隔符:"+FilenameUtils.separatorsToUnix(fileFullName));  
    35.         System.out.println("(21)转换分隔符为windows系统分隔符:"+FilenameUtils.separatorsToWindows(fileFullName));  
    36.         System.out.println("(22)判断目录下是否包含指定文件或目录:"+FilenameUtils.directoryContains(fileDirectory, fileName));  
    37.         String linuxFileName = FilenameUtils.normalize(fileFullName);  
    38.         System.out.println("(23)判断文件路径是否相同:"+FilenameUtils.equals(fileFullName, linuxFileName));  
    39.         System.out.println("(24)判断文件路径是否相同,格式化并大小写不敏感:"+FilenameUtils.equals(fileFullName,   
    40.                 FilenameUtils.normalize(fileFullName),true,IOCase.INSENSITIVE));  
    41.         System.out.println("(25)判断文件路径是否相同,格式化并大小写敏感:"   
    42.                 + FilenameUtils.equalsNormalized(fileFullName, linuxFileName));  
    43.         System.out.println("(26)判断文件路径是否相同,不格式化,大小写敏感根据系统规则:windows:敏感;linux:不敏感:"  
    44.                 + FilenameUtils.equalsOnSystem(fileFullName, linuxFileName));   
    45.         List<String> extensions = new ArrayList<>();    
    46.         extensions.add("txt");    
    47.         extensions.add("java");   
    48.         System.out.println("(27)判断文件扩展名是否包含在指定集合中:"  
    49.                 + FilenameUtils.isExtension(fileFullName, extensions));   
    50.         System.out.println("(28)判断文件扩展名是否等于指定扩展名:"   
    51.                 + FilenameUtils.isExtension(fileFullName, "txt"));  
    52.         System.out.println("(29)判断文件扩展名是否包含在指定字符串数组中:"   
    53.                 + FilenameUtils.isExtension(fileFullName, new String[]{"txt","java"}));  
    54.         System.out.println("(30)判断文件扩展名是否和指定规则匹配,大小写敏感:"  
    55.                 + FilenameUtils.wildcardMatch(fileName, "*.???"));   
    56.         System.out.println("(31)判断文件扩展名是否和指定规则匹配,大小写不敏感:"   
    57.                 + FilenameUtils.wildcardMatch(fileName, "*.???",IOCase.INSENSITIVE));  
    58.         System.out.println("(32)判断文件扩展名是否和指定规则匹配,根据系统判断敏感型:windows:不敏感;linux:敏感:"   
    59.                 + FilenameUtils.wildcardMatchOnSystem(fileName, "*.???"));  
    60.           
    61.     }  
    62. }  

    四、打印结果

    Java代码  收藏代码
    1. (1)显示linux路径:D:aabccfile.txt  
    2. (2)合并目录和文件名为文件全路径:D:aabccfile.txt  
    3. (3)文件路径去除目录和后缀后的文件名:file  
    4. (4)获取文件的后缀:txt  
    5. (5)获取文件的完整目录:/D:/aa/bb/cc/  
    6. (6)获取文件的目录不包含结束符:/D:/aa/bb/cc  
    7. (7)获取文件名称,包含后缀:file.txt  
    8. (8)去除前缀的路径:D:/aa/bb/cc/  
    9. (9)去除前缀并结尾去除分隔符:D:/aa/bb/cc  
    10. (10)获取前缀:/  
    11. (11)获取前缀长度:1  
    12. (12)获取最后一个.的位置:17  
    13. (13)获取最后一个/的位置:12  
    14. (14)获取当前系统格式化路径:D:aabccfile.txt  
    15. (16)获取当前系统无结尾分隔符的路径:D:aabcc  
    16. (17)获取linux系统无结尾分隔符的路径:D:aabcc  
    17. (18)移除文件的扩展名:/D:/aa/bb/cc/file  
    18. (19)转换分隔符为当前系统分隔符:D:aabccfile.txt  
    19. (20)转换分隔符为linux系统分隔符:/D:/aa/bb/cc/file.txt  
    20. (21)转换分隔符为windows系统分隔符:D:aabccfile.txt  
    21. (22)判断目录下是否包含指定文件或目录:false  
    22. (23)判断文件路径是否相同:false  
    23. (24)判断文件路径是否相同,格式化并大小写不敏感:true  
    24. (25)判断文件路径是否相同,格式化并大小写敏感:true  
    25. (26)判断文件路径是否相同,不格式化,大小写敏感根据系统规则:windows:敏感;linux:不敏感:false  
    26. (27)判断文件扩展名是否包含在指定集合中:true  
    27. (28)判断文件扩展名是否等于指定扩展名:true  
    28. (29)判断文件扩展名是否包含在指定字符串数组中:true  
    29. (30)判断文件扩展名是否和指定规则匹配,大小写敏感:true  
    30. (31)判断文件扩展名是否和指定规则匹配,大小写不敏感:true  
    31. (32)判断文件扩展名是否和指定规则匹配,根据系统判断敏感型:windows:不敏感;linux:敏感:true  

     

  • 相关阅读:
    thinkpa R61i安装XP SATA的解决方法
    成都港宏4S店买的日产,送的无牌DVD 和可视倒车品牌是路特仕 80007
    设计模式之:解剖观察者模式
    java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)
    lephone 壁纸(裸婚时代 童佳倩姚笛壁纸)
    C# 让程序自动以管理员身份运行
    项目管理的5大过程组、9大知识域、44个管理流程的映射关系
    Spring Security 中如何让用户名不存在的错误显示出来(用户名不存在显示Bad credentials)
    eclipse老是报ThreadPoolExecutor$Worker.run()
    Unison文件夹同步工具
  • 原文地址:https://www.cnblogs.com/sharpest/p/7298475.html
Copyright © 2011-2022 走看看