项目中的操作文件名的工具类:

 import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern; public class FileNameUtil {
/**
* 修改指定文件的扩展名
* @param fileName
* @param newExt
* @return
*/
public static String changeFileExt(String fileName, String newExt){
return fileName.replaceAll("\\.[^\\.\\\\/]*$", "") + "." + newExt.replaceAll("^\\.", "");
}
/**
* 去掉文件的扩展名
* @param fileName
* @return
*/
public static String removeFileExt(String fileName){
return fileName.replaceAll("\\.[^\\\\/\\.]*$", "");
} /**
* 修正文件名错误,主要包括出现/的、双\\的
* @param fileName
* @return
*/
public static String correctFileName(String fileName){
return fileName.replaceAll("(?!^)[\\\\/]+", "\\\\");
}
/**
* 修正文件名错误,主要包括出现/的、双\\的 成为linux
* @param fileName
* @return
*/
public static String correctFileName4Linux(String fileName){
return fileName.replaceAll("(?!^)[\\\\/]+", "/");
} /**
* 判断文件是否存在
* @param fileName
* @return
*/
public static boolean isFileExists(String fileName){
//把一个或多个\或/替换成1个
File f = new File(correctFileName(fileName));
try{
return f.exists();
}finally{
f = null;
}
} /**
* 连接两个文件名
* @param base
* @param addition
* @return
*/
public static String fileNameAdd(String base, String addition){
return base.replaceAll("[\\\\/]+$", "") + "\\" + addition.replaceAll("^[\\\\/]+", "");
} /**
* 是不是UNC路径
* @param fileName
* @return
*/
public static boolean isUNC(String fileName){
return fileName.matches("^\\\\{2}[^\\\\/]+\\\\[\\s\\S]*$");
} /**
* 获取文件名的扩展名
* @param fileName
* @return
*/
public static String extractFileExt(String fileName){
Pattern p = Pattern.compile("\\.[^\\\\/.]+$");
Matcher m = p.matcher(fileName);
return m.find()? m.group() : "";
} /**
* 获取文件的路径(最后的\会被去掉)
* @param fileName
* @return
*/
public static String extractFilePath(String fileName){
return fileName.replaceAll("[\\\\/][^\\\\/]*$", "");
} /**
* 获取文件绝对路径的文件名部分
* @param fileName
* @return
*/
public static String extractFileName(String fileName){
return fileName.replaceAll("^[\\s\\S]*[\\\\/]", "");
} /**
* 获取相对路径(去掉盘符或UNC的主机)
* @param fileName
* @return
*/
public static String extractRelativePath(String fileName){
if(isUNC(fileName)){
return fileName.replaceAll("^\\\\{2}[^\\\\/]+[\\\\/]+", "");
}else{
return fileName.replaceAll("^.*\\:\\\\+", "");
}
} /**
* 把盘符 和 文件路径拼接起来 得到完整的文件地址,自动判断拼接的时候前面是不是有 斜杠
* @param driverOrLpath windows系统下的盘符,或者是linux系统下的路径
* @param filename 文件的路径 如: 二次合成\2011\IPTV\上海文广\电影\123456_变形金刚.ts
*/
public static String joinPath(String driverOrLpath,String filename ){
String d = driverOrLpath.replaceAll("[\\\\/]*$", "") ;
filename = filename.replaceAll("^[\\\\/]*", ""); // 把开头的 斜杠都去掉,后面统一加 return d + File.separator + filename;
} /**
* 功能:替换掉文件名字中的特殊字符
* 时间:2016-01-21
* @param filename
* @return
*/
public static String removeSpecialcharacter(String filename){
Pattern pattern=Pattern.compile("[\u4e00-\u9fa5]");//中文汉字编码区间
Matcher matcher;
char[] array = filename.toCharArray();
for (int i = 0; i < array.length; i++) {
if((char)(byte)array[i]!=array[i]){//取出双字节字符
matcher=pattern.matcher(String.valueOf(array[i]));
if(!matcher.matches()){//中文汉字无需替换
filename=filename.replaceAll(String.valueOf(array[i]), "");//特殊字符用空字符串替换
}
}
}
return filename;
} public static void main(String[] args) { }
}

得到一个文件/目录下文件名/路径  或者是子文件的子文件名....

     /*
* 如果想要获得当前文件中的文件名只需要String [] fileName = file.list();就可以了。
* 如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。
* 其中public static String [] getFileName(String path)是只得到当前文件中的文件名。
* public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。
*/
public static String[] getFileName(String path) {
File file = new File(path);
String[] fileName = file.list();
return fileName;
} public static ArrayList<String> getFilePath(String parentPath) {
ArrayList<String> childFilesPathList = new ArrayList<String>();
File parentFile = new File(parentPath);
File[] childFiles = parentFile.listFiles();
for (File childFile : childFiles) {
childFilesPathList.add(childFile.getAbsolutePath());
}
return childFilesPathList;
} public static void getAllFileName(String path, ArrayList<String> fileName) {
File file = new File(path);
File[] files = file.listFiles();
String[] names = file.list();
if (names != null)
fileName.addAll(Arrays.asList(names));
for (File a : files) {
if (a.isDirectory()) {
getAllFileName(a.getAbsolutePath(), fileName);
}
}
}

Java 文件名操作的相关工具类的更多相关文章

  1. Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  2. Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  3. Java代码操作HDFS测试类

    1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...

  4. Java POI操作Excle工具类

    用到了jxl.jar和poi.jar 一些基本的操作Excel的操作方法: import java.io.File; import java.io.FileInputStream; import ja ...

  5. Java 数据库操作之Dao类

    package Dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; imp ...

  6. Java IP白名单相关工具类

    关于设置IP白名单相关的一些方法,整理,记录了一下. package com.tools.iptool; import java.util.ArrayList; import java.util.Ha ...

  7. Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)

    1. File常用的构造 File file = new File("字符串路径"); File f = new File("D:\\a\\b.txt"); F ...

  8. java中文件操作的工具类

    代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...

  9. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

随机推荐

  1. hadoop streaming 编程

    概况 Hadoop Streaming 是一个工具, 代替编写Java的实现类,而利用可执行程序来完成map-reduce过程.一个最简单的程序 $HADOOP_HOME/bin/hadoop jar ...

  2. 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)

    1.获取电池电量(一般用百分数表示,大家自行处理就好) 1 2 3 4 -(CGFloat)getBatteryQuantity {         return [[UIDevice current ...

  3. 最新CentOS6.x下redis安装

    1:软件环境: 系统版本:CentOS release 6.5 redis版本:redis-cli 3.0.5 安装目录:"/usr/local/redis" 下载软件:" ...

  4. Oracle & Sun

    2010s January 27, 2010: Oracle acquires Sun Microsystems.

  5. Unity3D行为树插件Behave学习笔记

    Behave1.4行为树插件 下载地址:http://pan.baidu.com/s/1i4uuX0L 安装插件和使用 我们先来看看插件的安装和基本使用方法,新建一个Unity3D项目,这里我使用的是 ...

  6. python求3的倍数与和

    suqares=[] i=1 sum=0 while i<=100: i+=1 if i*3: sum=sum+i # print(i) suqares.append(i*3) # print( ...

  7. 解决Linux下sqlplus中文乱码问题

    错误现象:在windows下用其他工具访问oracle,确认中文正常显示.在Linux下使用sqlplus查询数据表中文内容出现乱码. 分析及解决:因为windows下正常,所以问题应出现在Linux ...

  8. VHD_Update_diskpart

    ###################功能说明########################该脚本用来对离线VHD文件更新,导入系统补丁############################### ...

  9. 2015 NOIP day1 t1 神奇的幻方 模拟

    神奇的幻方 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2615 Descri ...

  10. delphi queryCommandState

    如何 获取当前光标所在的字符属性 关键点 function queryCommandState(const cmdID: WideString): WordBool; safecall; 粗体 斜体 ...