`

java文件名工具类_扩展名、文件夹、文件等判断

    博客分类:
  • java
阅读更多

唯一依赖org.apache.commons.lang.StringUtils请下载相关包

package com.wesley.framework.commen.io;

import org.apache.commons.lang.StringUtils;

/**
 * @author it.zl
 *
 */
public class PathUtil {

	public static final String DOT = ".";
	public static final String SLASH_ONE = "/";
	public static final String SLASH_TWO = "\\";

	/**
	 * 获取没有扩展名的文件名
	 * @param fileName
	 * @return
	 */
	public static String getWithoutExtension(String fileName) {
		String ext = StringUtils.substring(fileName, 0,
				StringUtils.lastIndexOf(fileName, DOT));
		return StringUtils.trimToEmpty(ext);
	}

	/**
	 * 获取扩展名
	 * @param fileName
	 * @return
	 */
	public static String getExtension(String fileName) {
		if (StringUtils.INDEX_NOT_FOUND == StringUtils.indexOf(fileName, DOT))
			return StringUtils.EMPTY;
		String ext = StringUtils.substring(fileName,
				StringUtils.lastIndexOf(fileName, DOT));
		return StringUtils.trimToEmpty(ext);
	}

	/**
	 * 判断是否同为扩展名
	 * @param fileName
	 * @param ext
	 * @return
	 */
	public static boolean isExtension(String fileName, String ext) {
		return StringUtils.equalsIgnoreCase(getExtension(fileName), ext);
	}

	/**
	 * 判断是否存在扩展名
	 * @param fileName
	 * @return
	 */
	public static boolean hasExtension(String fileName) {
		return !isExtension(fileName, StringUtils.EMPTY);
	}

	/**
	 * 得到正确的扩展名
	 * @param ext
	 * @return
	 */
	public static String trimExtension(String ext) {
		return getExtension(DOT + ext);
	}

	/**
	 * 向path中填充扩展名(如果没有或不同的话)
	 * @param fileName
	 * @param ext
	 * @return
	 */
	public static String fillExtension(String fileName, String ext) {
		if (!hasExtension(fileName)) {
			return fileName + getExtension(ext);
		}
		if (!isExtension(fileName, ext)) {
			return getWithoutExtension(fileName) + getExtension(ext);
		}
		return fileName;
	}

	/**
	 * 判断是否是文件PATH
	 * @param fileName
	 * @return
	 */
	public static boolean isFile(String fileName) {
		return hasExtension(fileName);
	}

	/**
	 * 判断是否是文件夹PATH
	 * @param fileName
	 * @return
	 */
	public static boolean isFolder(String fileName) {
		return !hasExtension(fileName);
	}

	/**
	 * 链接PATH前处理
	 * @param path
	 * @return
	 */
	public static String trimLeftPath(String path) {
		if (isFile(path))
			return path;
		path = StringUtils.trimToEmpty(path);
		String top = StringUtils.left(path, 1);
		if (StringUtils.equalsIgnoreCase(SLASH_ONE, top)
				|| StringUtils.equalsIgnoreCase(SLASH_TWO, top))
			return StringUtils.substring(path, 1);
		return path;
	}

	/**
	 * 链接PATH后处理
	 * @param path
	 * @return
	 */
	public static String trimRightPath(String path) {
		if (isFile(path))
			return path;
		path = StringUtils.trimToEmpty(path);
		String bottom = StringUtils.right(path, 1);
		if (StringUtils.equalsIgnoreCase(SLASH_ONE, bottom)
				|| StringUtils.equalsIgnoreCase(SLASH_TWO, bottom))
			return StringUtils.substring(path, 0, path.length() - 2);
		return path + SLASH_ONE;
	}

	/**
	 * 链接PATH前后处理,得到准确的链接PATH
	 * @param path
	 * @return
	 */
	public static String trimPath(String path) {
		path = trimLeftPath(path);
		path = trimRightPath(path);
		return path;
	}

	/**
	 * 通过数组完整链接PATH
	 * @param paths
	 * @return
	 */
	public static String bulidFullPath(String... paths) {
		StringBuffer sb = new StringBuffer();
		for (String path : paths) {
			sb.append(trimPath(path));
		}
		return sb.toString();
	}

	public static void main(String[] args) {
		String fileName = "H:\\Intel\\Logs\\12312312.log";
		System.out.println(PathUtil.fillExtension(fileName, ".dit"));
		String[] paths = { "win", "t", "a", "teswe.te" };
		System.out.println(PathUtil.bulidFullPath(paths));
	}
}

 

分享到:
评论

相关推荐

    用一个文件夹的文件重命名别一个文件夹的文件

    对于每个文件,它获取文件名(不含扩展名)并应用到目标文件夹B的对应文件上。 如果不想手动编写脚本,也可以使用图形界面工具,如Total Commander、Bulk Rename Utility等,它们提供了直观的界面和丰富的重命名...

    文件名替换追加工具

    在Windows系统中,".exe"扩展名表示可执行文件,这意味着用户可以直接运行这个程序来执行文件名的替换和追加操作。不过,需要注意的是,“rm”通常是删除文件的命令,但在这里可能是开发者为了某种目的而命名的。 ...

    JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip

    压缩包中的文件名为 "5575757",虽然没有具体的文件名信息,但我们可以推测这可能是一个Java源代码文件,其中包含了自定义的工具类。这些工具类可能包括但不限于以下几个方面: 1. **字符串工具类**:可能包含了对...

    批量修改文件夹文件名称

    在IT行业中,批量修改文件或文件夹的名称是一项常见的任务,尤其是在处理大量数据或资源时。C#是一种广泛用于开发Windows应用程序的编程语言,它提供了强大的文件系统操作能力,包括文件和目录的命名更改。本项目是...

    查找重复文件和同名文件[java code]

    这通常通过文件扩展名匹配来实现,可以在代码中设置一个白名单或黑名单列表。 3. **忽略文件类型**:除了过滤文件类型,该工具还提供了忽略某些文件的能力,这可能是为了避开系统文件或特定的应用程序文件,以避免...

    playground-l0emmw0g_javaswing_TheJust_

    没有具体的文件扩展名,我们无法确定它是源代码、文档还是其他类型。然而,考虑到上下文,这很可能是项目的源代码文件夹,其中可能包含了使用Java Swing编写的GUI应用程序的各种文件和类。 基于以上信息,我们可以...

    FilenameFileter list 查看 java文件列表(过滤 java文件)

    在Java编程中,`FilenameFilter` 是一个接口,它用于过滤文件名,允许我们根据特定的文件扩展名或模式选择性地列出目录中的文件。在给定的标题和描述中,我们关注的是如何使用 `FilenameFilter` 来查看并列出只包含 ...

    如何遍历文件夹查找文件

    4. **过滤与查找**:在遍历过程中,通常需要根据特定条件(如文件名、扩展名或文件大小)筛选出目标文件。可以使用正则表达式或者自定义过滤器来实现。 5. **同步与异步**:根据应用场景,遍历文件夹可以是同步的...

    文件、文件夹重命名

    重命名文件或文件夹的操作会影响到文件系统中的元数据,包括文件名、扩展名以及与之关联的属性信息。 3. **批处理重命名**: 当需要对大量文件进行重命名时,手动操作就显得效率低下。这时,可以利用批处理命令...

    读取所选文件夹下的所有文件

    在Python中,可以使用`os`或`os.path`模块的`listdir()`函数获取文件夹中的所有文件名,然后通过判断每个条目是文件还是子文件夹,递归处理子文件夹。在Java中,可以使用`java.io.File`类的`listFiles()`方法实现...

    sjrt.rar_sjrt是什么文件

    标签“sjrt是什么文件”表明用户对sjrt这个文件扩展名或者文件本身有疑问,sjrt不是一个标准的文件扩展名,可能是一个特定项目的内部命名约定或者是开发者自己创建的特殊文件类型。在没有更多信息的情况下,很难确定...

    用Java输出HTML文件

    - **使用`FilenameFilter`筛选URL文件**:`FilenameFilter`接口用于过滤文件列表,只保留扩展名为.url的文件。通过实现`FilenameFilter.accept()`方法,可以精确控制哪些文件将被处理。 ```java FilenameFilter ...

    Java文件转换为 Exe 可执行文件

    配置文件为:与可执行文件同一文件夹内,文件名相同,扩展名为 ".cfg" 的文件。 配置方法为:指明 jvm.dll 所在相对位置或者绝对位置。 举例: 对于前面的例子 test.exe,对应的配置文件为 test.cfg。 如果将 jre ...

    JAVA文件学习,文件搜索器

    【标题】"JAVA文件学习,文件搜索器"指的是一个基于Java编程语言开发的实用工具,它的主要功能是帮助用户在计算机文件系统中快速查找特定的文件或文件夹。这个工具可能利用了Java的I/O流、文件操作以及目录遍历等...

    JAVA文件管理器原代码

    为了允许用户按类型或扩展名筛选文件,文件管理器通常会使用FileFilter接口。这允许用户只看到特定类型的文件,比如只显示所有.txt文件。 8. **对话框和警告**: Java Swing提供JOptionPane类,可以创建各种...

    WilViewer_wil文件编辑器源码示例_wil文件编辑_wil源码_wil文件编辑器_

    "WilViewer_wil文件编辑器源码示例_wil文件编辑_wil源码_wil文件编辑器" 这个标题表明我们正在讨论一个名为"WilViewer"的软件工具,它是一个用于编辑.WIL文件的源码示例。.WIL文件可能是一种特定格式的数据文件,而...

    Java写的FileSearch工具(源码)

    Java编写的FileSearch工具是一个基于Swing界面的文件搜索应用程序,它使用了文件操作类和递归算法来高效地在用户指定的目录下查找特定类型的文件。这个工具对于开发者和普通用户来说都非常实用,因为它可以帮助他们...

    java反编译工具(可以集成到eclipse当中)

    反编译结果以.java为扩展名。 四、Option -p 将反编译结果输出到屏幕 c:\java\>jad -p example1.class 将反编译结果重定向到文件 c:\java\>jad -p example1.class>example1.java 五、Option -d 指定反编译...

    Java使用FilenameFilter查找出目录下指定后缀的文件示例

    在accept方法中,我们通过文件名的后缀来判断文件是否满足过滤规则。如果文件名最后一个‘.’字符的索引大于0,我们就截取文件名的后缀,并将其与filterRule进行比较。如果两者相同,我们就返回true,否则返回false...

    文件路径选择

    2. 文件名与扩展名:文件名是区分一个文件的关键,而扩展名则标识文件的类型。例如,"example.txt" 中,"example" 是文件名,".txt" 是扩展名,表明这是一个文本文件。了解扩展名对于正确处理文件至关重要。 3. ...

Global site tag (gtag.js) - Google Analytics