当前位置:首页 > 开发 > 研发管理 > 正文

FilenameUtils工具类

发表于: 2015-06-04   作者:eksliang   来源:转载   浏览:
摘要: 转载请出自出处:http://eksliang.iteye.com/blog/2217081 一、概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。

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

一、概述

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

 

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

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

 

三、FilenameUtils API操作如下

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, "*.???"));
	    
	}
}

四、打印结果

(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

 

参考:

http://blog.sina.com.cn/s/blog_abb3c2e90102uyz3.html

 

 

FilenameUtils工具类

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
好吧 我承认我懒得看了,因为里面有点像编译器似的,字符操作,会死掉好的脑细胞的,当然正在学习Java的
概述 谁适合看此文档? 本文深入讲解 JavaScript 的类有关知识,并介绍了一些改善 JavaScript 面向
工具类代码 @Controller public class EndpointDocController { private final RequestMappingHandl
本章目标 掌握Collections与Collection接口的区别 掌握Collections类中提供的主要操作方法 Collecti
早在2008年三年就发布了一个对象池工具类,允许你在集合中放置对象,在需要时再用,众所周知Flex的
Flex StringUtil工具类 最近发现Flex处理字符串的工具类一共有三个,分别是: mx.utils包下的String
1.掌握Collections 与 Collection 接口的区别 2.掌握Collections 类中提供的主要操作方法 在面试题
10年工作经验老程序员推荐的7个开发类工具 做.NET软件工作已经10年了,从程序员做到高级程序员,再
导出为EXCEL文件并下载 使用ExcelUtil.writeToExcel(ExcelUtil.listToWorkbook(rows, ExcelType.xls
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号