zoukankan      html  css  js  c++  java
  • JAVA获取文件本身所在的磁盘位置

    我们在做java开发(纯java程序,或者java web开发)时,经常会遇到需要读取配置文件的需求,如果我们将文件所在位置的信息直接写到程序中,例如:e:workspacejavaguiincomutil这个目录,这样虽然可行,但是,却产生了很大的局限性,因为读取的文件必须要要满足在e:workspacejavaguiincomutil之下才能够被正常读取,否则java抛异常。那如果在没有e盘盘符的服务器上,这样的程序是没办法执行的。所以就需要我们的程序能够读取当前文件的所在位置,从而确定文件的物理磁盘位置,而不是手动写入这个位置。

    以下程序,就实现了这个功能

    /**
    * 得到类的路径,例如e:workspacejavaguiincomutil
    * @return
    * @throws java.lang.exception
    */
    public string getclasspath() throws exception {
    try {
    string strclassname = getclass().getname();
    string strpackagename = "";
    if (getclass().getpackage() != null) {
    strpackagename = getclass().getpackage().getname();
    }
    string strclassfilename = "";
    if (!"".equals(strpackagename)) {
    strclassfilename = strclassname.substring(strpackagename.length() + 1,
    strclassname.length());
    } else {
    strclassfilename = strclassname;
    }
    url url = null;
    url = getclass().getresource(strclassfilename + ".class");
    string strurl = url.tostring();
    strurl = strurl.substring(strurl.indexof('/') + 1, strurl
    .lastindexof('/'));
    //返回当前类的路径,并且处理路径中的空格,因为在路径中出现的空格如果不处理的话,
    //在访问时就会从空格处断开,那么也就取不到完整的信息了,这个问题在web开发中尤其要注意
    return strurl.replaceall("%20", " ");
    } catch (exception ex) {
    ex.printstacktrace();
    throw ex;
    }
    }

    用下面这个方法获得的superpath,加上你下面的子文件夹,好比222444。这个保存路径最好放到你的webapps下面,如果你用was,就应该放到相应的目录下,而不能放到你机器的某个盘符上,跟web app走而不是固定的盘符,要知道你的机器上可能有D盘,但是人家的机器上没有D盘的话,这个目录怎么创建呢! ```java String superPath = Tools.getSuperPath()+"222/444/"; if ( (new File(superPath+"/").isDirectory())) { new File(superPath+"/" +foldername).mkdir(); }
  • 相关阅读:
    PAT甲题题解-1030. Travel Plan (30)-最短路+输出路径
    PAT甲题题解-1029. Median (25)-求两序列的中位数,题目更新了之后不水了
    PAT甲题题解-1028. List Sorting (25)-水排序
    BZOJ 1492 货币兑换Cash
    Codeforces 276D Little Girl and Maximum XOR
    Codeforces 526E Transmitting Levels
    Codeforces 335B Palindrome
    BZOJ 2527 Meteors
    Codeforces 449D Jzzhu and Numbers
    FJ省队集训DAY4 T3
  • 原文地址:https://www.cnblogs.com/jpfss/p/9488626.html
Copyright © 2011-2022 走看看