File類有兩個常用方法可以得到檔案路徑一個是:getCanonicalPath(),另一個是:getAbsolutePath(),可以透過File類的實例調用這兩個方法例如file.getAbsolutePath()其中file是File的實例對象。下面是一個具體例子:
public class PathTest
{
public static void main(String[] args)
{
File file = new File(".srcbaidu");
System.out.println(file.getAbsolutePath());
try
{
System.out.println(file.getCanonicalPath());
} catch (IOException e)
{
e.printStackTrace();
}
}
}
getAbsolutePath()和getCanonicalPath()的不同之處在於,getCanonicalPath()得到的是一個規範的路徑,而getAbsolutePath()是用構造File對象的路徑+當前工作目錄。例如在上面的例子中.(點號)代表當前目錄。getCanonicalPath()就會把它解析爲當前目錄但是getAbsolutePath()會把它解析成爲目錄名字(目錄名字是點號)。
下面是上面程序在我電腦上的輸出:
G:xhuojkonw.srcbaidu
G:xhuojkonwsrcbaidu
2. java怎麼獲取檔案的相對路徑一個例子,如複果有一個Test檔案夾裏面有test.java和hello.txt.如果你想用test.java操作制hello.txt只要在test.java中這樣寫2113File file=new File("hello.txt");//這樣就是相對路徑。
如果檔案結構是Test檔案夾。 |------test.java。
|------hello.txt。 |------source檔案夾。
.. |---------world.txt如果想5261在test.java中操作world.txt。只要這樣寫File file=new File("source/world.txt");另外,在web開發中/代表項目檔案夾根目錄,當然也有可能代替webapps,區分方法是:如果/開頭4102的uri是給瀏覽器解析則/代表webapps,如果是給服務1653器後臺解析,則代表項目檔案。
3. java 根據檔案獲取檔案名及路徑的方法我寫了一段遍歷某個檔案查找指定檔案的,你自己改成你需要的功能。
import java.io.File;
import java.util.HashMap;
public class Test1 {
static HashMap<String, String> filelist=new HashMap<String, String>();
/**
* 遞歸方法
* @param path 檔案路徑
*/
public static void find(String path){
File file=new File(path);
File[] files = file.listFiles();
//如果檔案數組爲null則返回
if (files == null)
return;
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
//判斷是不是檔案夾,如果是檔案夾則繼續向下查找檔案
find(files[i].getAbsolutePath());
} else {
//記錄檔案路徑
String filePath = files[i].getAbsolutePath().toLowerCase();
//記錄檔案名
String fileName=files[i].getName().toLowerCase();
// System.out.println("---"+strFileName);
filelist.put(fileName, filePath);
}
}
}
public static void main(String[] args) {
//需要遍歷的路徑,也就是你要查找檔案所在的路徑
String path="D:kpi";
find(path);
System.out.println("kpi.9的路徑:"+filelist.get("kpi.9"));
//輸出結果:d:kpikpi.9
}
}