package com.thinkive.base.util;
import java.io.File;
import java.net.URL;
import org.apache.log4j.Logger;
public class PropHelper
{
private static Logger logger = Logger.getLogger(PropHelper.class);
/**
*guessPropFile:
*@param cls:和要寻找的属性文件处于相同的包中的任意的类
*@param propFile:要寻找的属性文件名
*/
public static File guessPropFile(Class cls, String propFile)
{
File f = null;
try
{
//得到类的类装载器
ClassLoader loader = cls.getClassLoader();
//先从当前类所处路径的根目录中寻找属性文件
URL url = loader.getResource(propFile);
if (url != null)
{
f = new File(url.getPath());
if (f != null && f.exists() && f.isFile())
{
return f;
}
}
//没有找到,就从该类所处的包目录中查找属性文件
Package pack = cls.getPackage();
if (pack != null)
{
String packName = pack.getName();
String path = "";
if (packName.indexOf(".") < 0)
{
path = packName + "/";
}
else
{
int start = 0, end = 0;
end = packName.indexOf(".");
while (end != -1)
{
path = path + packName.substring(start, end) + "/";
start = end + 1;
end = packName.indexOf(".", start);
}
path = path + packName.substring(start) + "/";
}
url = loader.getResource(path + propFile);
if (url != null)
{
f = new File(url.getPath());
if (f != null && f.exists() && f.isFile())
{
return f;
}
}
}
//如果没有找到,再从当前系统的用户目录中进行查找
String curDir = System.getProperty("user.dir");
f = new File(curDir, propFile);
if (f != null && f.exists() && f.isFile())
{
return f;
}
//如果还是没有找到,则从系统所有的类路径中查找
String classpath = System.getProperty("java.class.path");
String[] cps = classpath.split(System.getProperty("path.separator"));
for (int i = 0; i < cps.length; i++)
{
f = new java.io.File(cps[i], propFile);
if (f != null && f.exists() && f.isFile())
{
break;
}
f = null;
}
//如果还是没有找到,从jar包中查找
}
catch (Exception e)
{
logger.error("", e);
f = null;
}
return f;
}
public static void main(String[] args)
{
}
}
相关推荐
这时,一个能够“生成任意大小和格式文件的工具”就显得尤为重要。这个工具无需安装,这意味着它可能是便携式的,可以直接运行而不需要在系统中留下任何痕迹,这对于系统管理员和开发者来说非常方便。 首先,让我们...
文件拷贝就是将一个文件的内容复制到另一个位置,创建一个新的文件副本,保持与原文件相同的数据和属性。 在不同的操作系统中,文件拷贝的实现方式有所不同。例如,在Windows系统中,可以使用图形界面的“复制”和...
ctf+web安全+任意文件上传+任意文件下载
在IT领域,有时我们需要对文件的时间属性进行调整,例如改变文件的创建时间、访问时间或修改时间。这可能出于各种原因,比如恢复误删文件的原始时间戳,测试软件的时序逻辑,或者优化文件系统的表现。"时间属性修改...
帆软 V9 任意文件覆盖文件上传漏洞描述帆软 V9 存在任意文件覆盖,导致攻击者可以任意文件上传漏洞影响帆软 V9漏洞复现。
帆软 V9 任意文件覆盖文件上传漏洞描述帆软 V9 存在任意文件覆盖,导致攻击者可以任意文件上传漏洞影响帆软 V9漏洞复现。
本人自己重新封装BufferedReader类的文件读取工具类,节省了每次使用文件读取类是的处理和转换工作,并且提供了丰富的方法,可以读取任意行数内容,并且可以带有行号,绝对好!
标题提到的“任意文件转换成C语言数组”就是解决这类问题的一个方法。这种方法允许我们将文件内容编码为C语言数组,使得程序可以直接在内存中加载和使用这个数据。下面将详细解释这一过程及其相关知识点。 首先,...
在VC++编程环境中,获取DLL或EXE文件的属性信息是一项常见的任务,这涉及到系统级的文件操作和信息解析。本文将深入探讨如何利用VC++实现这一功能,重点关注如何获取文件的基本信息,如名称,以及更高级的特性,如...
8. **自定义VI**:"打开任意类型文件LV8.6.vi"很可能是一个自定义的LabVIEW VI,它封装了上述的文件I/O过程,并可能提供了用户友好的界面,允许用户选择任意类型的文件并进行操作。此VI可能是通过判断文件扩展名,...
在标题和描述中提到的"文件MD5指定修改为任意值工具",这可能是一个程序或工具,它的功能是改变文件的MD5哈希值,使其与用户指定的任何MD5值相匹配。这种工具在某些情况下可能有其合法用途,如测试和调试,但更常见...
在VC++编程环境中,获取文件属性信息是一项基本但至关重要的任务。这涉及到对Windows API的深入理解和使用。本文将详细讲解如何使用C++和Windows API来获取文件的属性,如修改时间、隐藏属性等,并提供相关源代码...
在决策表中,如果两个对象在所有条件属性上的值都相同,那么它们被视为是等价的,可以被分到同一个等价类。等价类的计算可以帮助我们识别数据的相似性,减少冗余信息,并为后续的分析提供基础。 接下来是核属性的...
用友NC任意文件上传漏洞利用工具,用友NC6.5的某个页面,存在任意文件上传漏洞。漏洞成因在于上传文件处未作类型限制,未经身份验证的攻击者可通过向目标系统发送特制数据包来利用此漏洞,成功利用此漏洞的远程攻击...
在Java中实现DES加密,首先需要导入相关的JCE(Java Cryptography Extension)库,例如`javax.crypto`包中的类。以下是一般步骤: 1. **密钥生成**:使用`SecretKeySpec`类创建一个DES密钥,需要提供64位的密钥字节...
在IT行业中,文件属性获取是一项基础但至关重要的任务,尤其对于系统管理员、开发者以及数据处理人员来说。"文件属性获取工具.zip"是一个专为解决这一需求而设计的实用程序,它能够快速、批量地获取文件的基本信息,...
"任意文件转C数组工具"是一个实用的程序,它允许开发者将不同类型的文件(如图像、文本、二进制等)转换成C语言的数据结构——数组。这个工具的目的是方便地将外部数据嵌入到C代码中,以便在程序运行时可以直接访问...
描述进一步指出,这个库允许开发者直接在布局文件中为任意View声明drawable属性。这意味着开发者不再需要创建单独的XML文件来定义视图的drawable属性,如背景、边框、图标的形状等。这将简化代码结构,提高开发效率...
在IT领域,有时我们需要对文件的时间属性进行调整,例如修改创建时间、访问时间和修改时间等。这在提交项目报告、整理文件记录或者满足特定需求时可能会派上用场。"文件时间修改器"是一个这样的工具,它允许用户方便...
jQuery是一个快速、简洁的JavaScript框架,丰富的Javascript代码库,在其1.7.2版本的sys_dia_data_down模块存在任意文件读取漏洞,攻击者可通过前台读取任意文件。