FilenameUtils工具類


一、概述

這是一個Java操作文件的常用庫,是Apache對java的IO包的封裝,這里面有兩個非常核心的類FilenameUtils跟FileUtils,其中FilenameUtils是對文件名操作的封裝;FileUtils是文件封裝,開發中對文件的操作,幾乎都可以在這個框架里面找到。 非常的好用。

 

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

Java代碼 

    <dependency>  
          <groupId>commons-io</groupId>  
          <artifactId>commons-io</artifactId>  
          <version>2.4</version>  
    </dependency>  

三、FilenameUtils API操作如下

Java代碼 

    package com.ickes.filename;  
      
    import java.util.ArrayList;  
    import java.util.List;  
    import org.apache.commons.io.FilenameUtils;  
    import org.apache.commons.io.IOCase;  
    /** 
     * org.apache.commons.io.FilenameUtils工具類筆記 
     * @author Ickes 
     */  
    public class FilenameUtilsTest {  
        public static void main(String[] args) throws Exception {  
            String fileDirectory = "/D:/aa/bb/cc";   
            String fileName ="file.txt";  
            String fileFullName = fileDirectory +"/"+ fileName;  
            System.out.println("(1)顯示linux路徑:"+FilenameUtils.normalizeNoEndSeparator(fileFullName));  
            System.out.println("(2)合並目錄和文件名為文件全路徑:"+FilenameUtils.concat(fileDirectory, fileName));  
            System.out.println("(3)文件路徑去除目錄和后綴后的文件名:"+FilenameUtils.getBaseName(fileFullName));  
            System.out.println("(4)獲取文件的后綴:"+FilenameUtils.getExtension(fileFullName));  
            System.out.println("(5)獲取文件的完整目錄:"+FilenameUtils.getFullPath(fileFullName));  
            System.out.println("(6)獲取文件的目錄不包含結束符:"+FilenameUtils.getFullPathNoEndSeparator(fileFullName));  
            System.out.println("(7)獲取文件名稱,包含后綴:"+FilenameUtils.getName(fileFullName));  
            System.out.println("(8)去除前綴的路徑:"+FilenameUtils.getPath(fileFullName));   
            System.out.println("(9)去除前綴並結尾去除分隔符:"+FilenameUtils.getPathNoEndSeparator(fileFullName));  
            System.out.println("(10)獲取前綴:"+FilenameUtils.getPrefix(fileFullName));  
            System.out.println("(11)獲取前綴長度:"+FilenameUtils.getPrefixLength(fileFullName));  
            System.out.println("(12)獲取最后一個.的位置:"+FilenameUtils.indexOfExtension(fileFullName));  
            System.out.println("(13)獲取最后一個/的位置:"+FilenameUtils.indexOfLastSeparator(fileFullName));  
            System.out.println("(14)獲取當前系統格式化路徑:"+FilenameUtils.normalize(fileFullName));  
            System.out.println("(16)獲取當前系統無結尾分隔符的路徑:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));  
            System.out.println("(17)獲取linux系統無結尾分隔符的路徑:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));  
            System.out.println("(18)移除文件的擴展名:"+FilenameUtils.removeExtension(fileFullName));  
            System.out.println("(19)轉換分隔符為當前系統分隔符:"+FilenameUtils.separatorsToSystem(fileFullName));  
            System.out.println("(20)轉換分隔符為linux系統分隔符:"+FilenameUtils.separatorsToUnix(fileFullName));  
            System.out.println("(21)轉換分隔符為windows系統分隔符:"+FilenameUtils.separatorsToWindows(fileFullName));  
            System.out.println("(22)判斷目錄下是否包含指定文件或目錄:"+FilenameUtils.directoryContains(fileDirectory, fileName));  
            String linuxFileName = FilenameUtils.normalize(fileFullName);  
            System.out.println("(23)判斷文件路徑是否相同:"+FilenameUtils.equals(fileFullName, linuxFileName));  
            System.out.println("(24)判斷文件路徑是否相同,格式化並大小寫不敏感:"+FilenameUtils.equals(fileFullName,   
                    FilenameUtils.normalize(fileFullName),true,IOCase.INSENSITIVE));  
            System.out.println("(25)判斷文件路徑是否相同,格式化並大小寫敏感:"   
                    + FilenameUtils.equalsNormalized(fileFullName, linuxFileName));  
            System.out.println("(26)判斷文件路徑是否相同,不格式化,大小寫敏感根據系統規則:windows:敏感;linux:不敏感:"  
                    + FilenameUtils.equalsOnSystem(fileFullName, linuxFileName));   
            List<String> extensions = new ArrayList<>();    
            extensions.add("txt");    
            extensions.add("java");   
            System.out.println("(27)判斷文件擴展名是否包含在指定集合中:"  
                    + FilenameUtils.isExtension(fileFullName, extensions));   
            System.out.println("(28)判斷文件擴展名是否等於指定擴展名:"   
                    + FilenameUtils.isExtension(fileFullName, "txt"));  
            System.out.println("(29)判斷文件擴展名是否包含在指定字符串數組中:"   
                    + FilenameUtils.isExtension(fileFullName, new String[]{"txt","java"}));  
            System.out.println("(30)判斷文件擴展名是否和指定規則匹配,大小寫敏感:"  
                    + FilenameUtils.wildcardMatch(fileName, "*.???"));   
            System.out.println("(31)判斷文件擴展名是否和指定規則匹配,大小寫不敏感:"   
                    + FilenameUtils.wildcardMatch(fileName, "*.???",IOCase.INSENSITIVE));  
            System.out.println("(32)判斷文件擴展名是否和指定規則匹配,根據系統判斷敏感型:windows:不敏感;linux:敏感:"   
                    + FilenameUtils.wildcardMatchOnSystem(fileName, "*.???"));  
              
        }  
    }  

四、打印結果

Java代碼 

    (1)顯示linux路徑:\D:\aa\bb\cc\file.txt  
    (2)合並目錄和文件名為文件全路徑:\D:\aa\bb\cc\file.txt  
    (3)文件路徑去除目錄和后綴后的文件名:file  
    (4)獲取文件的后綴:txt  
    (5)獲取文件的完整目錄:/D:/aa/bb/cc/  
    (6)獲取文件的目錄不包含結束符:/D:/aa/bb/cc  
    (7)獲取文件名稱,包含后綴:file.txt  
    (8)去除前綴的路徑:D:/aa/bb/cc/  
    (9)去除前綴並結尾去除分隔符:D:/aa/bb/cc  
    (10)獲取前綴:/  
    (11)獲取前綴長度:1  
    (12)獲取最后一個.的位置:17  
    (13)獲取最后一個/的位置:12  
    (14)獲取當前系統格式化路徑:\D:\aa\bb\cc\file.txt  
    (16)獲取當前系統無結尾分隔符的路徑:\D:\aa\bb\cc  
    (17)獲取linux系統無結尾分隔符的路徑:\D:\aa\bb\cc  
    (18)移除文件的擴展名:/D:/aa/bb/cc/file  
    (19)轉換分隔符為當前系統分隔符:\D:\aa\bb\cc\file.txt  
    (20)轉換分隔符為linux系統分隔符:/D:/aa/bb/cc/file.txt  
    (21)轉換分隔符為windows系統分隔符:\D:\aa\bb\cc\file.txt  
    (22)判斷目錄下是否包含指定文件或目錄:false  
    (23)判斷文件路徑是否相同:false  
    (24)判斷文件路徑是否相同,格式化並大小寫不敏感:true  
    (25)判斷文件路徑是否相同,格式化並大小寫敏感:true  
    (26)判斷文件路徑是否相同,不格式化,大小寫敏感根據系統規則:windows:敏感;linux:不敏感:false  
    (27)判斷文件擴展名是否包含在指定集合中:true  
    (28)判斷文件擴展名是否等於指定擴展名:true  
    (29)判斷文件擴展名是否包含在指定字符串數組中:true  
    (30)判斷文件擴展名是否和指定規則匹配,大小寫敏感:true  
    (31)判斷文件擴展名是否和指定規則匹配,大小寫不敏感:true  
    (32)判斷文件擴展名是否和指定規則匹配,根據系統判斷敏感型:windows:不敏感;linux:敏感:true  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM