All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.biz.utils.FilenameUtils Maven / Gradle / Ivy

There is a newer version: 1.0.7.RELEASE
Show newest version
package org.springframework.biz.utils;

import java.io.File;
import java.util.Locale;

public class FilenameUtils extends org.apache.commons.io.FilenameUtils {

	public static String getExtension(File file){
		return FilenameUtils.getExtension(file.getAbsolutePath());
	}
	
	public static String getFullExtension(String file){
		return "."+FilenameUtils.getExtension(file);
	}

	/**
	 * 根据无国际化标识的文件名称获取国际化文件名称
	 * @param filename : properties文件名称 ;如:"message.properties"
	 * @return 带有国际化标识的文件名称 ;如:"message_zh_CN.properties"
	 */
	public static String getBundleFileName(String filename) {
		// 获取文件对应的Locale对象
		Locale bundleLocale = getBundleLocale(filename);
		// 判断是否为空
		if(bundleLocale != null){
			return filename;
		}
		// 获取系统默认的Locale(国家/语言环境)
		Locale currentLocale = Locale.getDefault();
		// 获取基本名称部分
		String baseName = getBaseName(filename);
		// 文件后缀
		String extension = getExtension(filename);
		// 返回带国际化标识的文件名
		return baseName + "_" + currentLocale.toString() + "." + extension;
	
	}
	
	/**
	 * 根据国际化文件名称解析无国际化标识的文件名称
	 * @param filename : properties文件名称 ;如:"message_zh_CN.properties"
	 * @return 无国际化标识的文件名称 ;如:"message.properties"
	 */
	public static String getBundleName(String filename) {
		// 获取基本名称部分
		String baseName = getBaseName(filename);
		// 文件后缀
		String extension = getExtension(filename);
		// 获取文件对应的Locale对象
		Locale bundleLocale = getBundleLocale(filename);
		// 判断是否为空
		if(bundleLocale != null){
			return baseName.substring(0, baseName.length() - bundleLocale.toString().length() + 1) + "." + extension;
		}
		return baseName + "." + extension;
	}
	
	/**
	 * 根据国际化文件名称解析Locale对象
	 * @param filename : properties文件名称 ;如:"message_zh_CN.properties"
	 * @return java.util.Locale
	 */
	public static Locale getBundleLocale(String filename) {
		// 获取基本名称部分
		String baseName = getBaseName(filename);
		// 获取系统默认的Locale(国家/语言环境)
		Locale currentLocale = Locale.getDefault();
		if (baseName.endsWith(currentLocale.toString())) {
			return currentLocale;
		}
		//遍历所有可访问的Locale
		Locale[] localeList = Locale.getAvailableLocales();
		for (Locale locale : localeList) {
			if (baseName.endsWith(locale.toString())) {
				return locale;
			}
		}
		return null;
	}
	
    /**
	 * 判断资源文件名称是否符合国际化资源表达式规范
	 * @param filename : properties文件名称 ;如:"message_zh_CN.properties"
	 * @return true or false
	 */
	public static boolean isBundleFile(String filename) {
    	// 获取文件对应的Locale对象
		Locale bundleLocale = getBundleLocale(filename);
		// 判断是否为空
		return bundleLocale != null;
	}
	
}

 





© 2015 - 2024 Weber Informatics LLC | Privacy Policy