`

java 路径问题 整理

阅读更多

最近整理了一下项目中可能需要用到的java路径问题,方便查阅。
     /**

* 获得工程根目录 
*windows下
*/
public static String getRootPath(){
      String path = FileUtil.class.getResource("/../../").toString();
      try {
          path = java.net.URLDecoder.decode(path, "UTF-8");
          path = path.replace("file:/", "");//注意这里
          } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
      }
          return path;
}
 


/**
*linux下
**/
public static String getRootPathLinux(){
          String path = FileUtil.class.getResource("/../../").toString();
        try {
              path = java.net.URLDecoder.decode(path, "UTF-8");
              path = path.replace("file:", "");//少了"/"
             } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
             }
          return path;
}
 



*******************************************************************************************
system.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:
File directory = new File("");//设定为当前文件夹
try{
System.out.println(directory.getCanonicalPath());//获取标准的路径
System.out.println(directory.getAbsolutePath());//获取绝对路径
}catch(Exceptin e){}
File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。
# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹
# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径
# 至于getPath()函数,得到的只是你在new File()时设定的路径
比如当前的路径为 C:\test :
File directory = new File("abc");
directory.getCanonicalPath(); //得到的是C:\test\abc
directory.getAbsolutePath(); //得到的是C:\test\abc
direcotry.getPath(); //得到的是abc
File directory = new File(".");
directory.getCanonicalPath(); //得到的是C:\test
directory.getAbsolutePath(); //得到的是C:\test\.
direcotry.getPath(); //得到的是.
File directory = new File("..");
directory.getCanonicalPath(); //得到的是C:\
directory.getAbsolutePath(); //得到的是C:\test\..
direcotry.getPath(); //得到的是..

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics