JAVA獲取文件本身所在的磁盤位置


我們在做java開發(純java程序,或者java web開發)時,經常會遇到需要讀取配置文件的需求,如果我們將文件所在位置的信息直接寫到程序中,例如:e:\workspace\javagui\bin\com\util這個目錄,這樣雖然可行,但是,卻產生了很大的局限性,因為讀取的文件必須要要滿足在e:\workspace\javagui\bin\com\util之下才能夠被正常讀取,否則java拋異常。那如果在沒有e盤盤符的服務器上,這樣的程序是沒辦法執行的。所以就需要我們的程序能夠讀取當前文件的所在位置,從而確定文件的物理磁盤位置,而不是手動寫入這個位置。

以下程序,就實現了這個功能

/**
* 得到類的路徑,例如e:\workspace\javagui\bin\com\util
* @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,加上你下面的子文件夾,好比222\444。這個保存路徑最好放到你的webapps下面,如果你用was,就應該放到相應的目錄下,而不能放到你機器的某個盤符上,跟web app走而不是固定的盤符,要知道你的機器上可能有D盤,但是人家的機器上沒有D盤的話,這個目錄怎么創建呢! ```java String superPath = Tools.getSuperPath()+"222/444/"; if ( (new File(superPath+"/").isDirectory())) { new File(superPath+"/" +foldername).mkdir(); }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM