得到类的“绝对路径”

我们在很多时候,都希望使用文件的 绝对路径 做一些事。但是方法不当的话,这个需求就很难实现了,特别是对一些newer而言,绝对路径的问题很可能会给他们带来很大的困扰。所以我把自己常用的一个取得绝对路径的方法和大家分享一下,希望对大家有所帮助。

private String getClassPath() {
        String strClassName = getClass().getName();
        String strClassFileName = strClassName.substring(strClassName
                .lastIndexOf(".") + 1, strClassName.length());
        URL url = null;
        url = getClass().getResource(strClassFileName + ".class");
        String strURL = url.toString();
        strURL = strURL.substring(strURL.indexOf('/') + 1);
        return strURL;

}

将这个方法加入到需要的类中,就可以得到类文件所在的绝对路径。有人可能会问,这个方法好像没有实际的用处啊?别着急,我解释一下:

一般我们都是把一些资源文件放在固定的地方,而且资源文件和类文件的相对位置是已知的,比如在JBuilder的工程中,我们建立了一个包com.myCompany.util,把资源文件A.txt放在了和com文件夹并列的位置。那么我们使用上面的函数得到的绝对路径就是String path =d:/workspace/myProject/src/com/myCompany/util/xxx.class,我们使用String path2 = path.subString(0,path.lastIndexOf("/"));

就可以得到path2 =d:/workspace/myProject/src/com/myCompany/util

依次类推,

path2 =d:/workspace/myProject/src/com/myCompany

path2 =d:/workspace/myProject/src/com

path2 =d:/workspace/myProject/src

这样就可以使用path2 = path2+"/A.txt",得到我们需要的绝对路径

path2 =d:/workspace/myProject/src/A.txt

这样我们使用系统中的绝对路径和我们知道的相对位置(相对路径)就可以随意存取我们需要的东西了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值