得到类的“绝对路径”

我们在很多时候,都希望使用文件的 绝对路径 做一些事。但是方法不当的话,这个需求就很难实现了,特别是对一些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

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

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭