java获取某个文件夹的路径怎么写

java获取某个文件夹的路径怎么写,第1张

File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如filegetAbsolutePath()其中file是File的实例对象。下面是一个具体例子:

public class PathTest

{

public static void main(String[] args)

{

File file = new File("\\src\\baidu");

Systemoutprintln(filegetAbsolutePath());

try

{

Systemoutprintln(filegetCanonicalPath());

} catch (IOException e)

{

eprintStackTrace();

}

}

}

getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中(点号)代表当前目录。getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。

下面是上面程序在我电脑上的输出:

G:\xhuoj\konw\\src\baidu

G:\xhuoj\konw\src\baidu

在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用SystemgetProperty("userdir")获取你工程的绝对路径。

另:在Jsp,Servlet,Java中详细获得路径的方法!

1jsp中取得路径:

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:requestgetRequestURI()

结果:/TEST/testjsp

(2)得到工程名:requestgetContextPath()

结果:/TEST

(3)得到当前页面所在目录下全名称:requestgetServletPath()

结果:如果页面在jsp目录下 /TEST/jsp/testjsp

(4)得到页面所在服务器的全路径:applicationgetRealPath("页面jsp")

结果:D:\resin\webapps\TEST\testjsp

(5)得到页面所在服务器的绝对路径:absPath=new javaioFile(applicationgetRealPath(requestgetRequestURI()))getParent();

结果:D:\resin\webapps\TEST

2在类中取得路径:

(1)类的绝对路径:ClassclassgetClass()getResource("/")getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:SystemgetProperty("userdir")

结果:D:\TEST

3在Servlet中取得路径:

(1)得到工程目录:requestgetSession()getServletContext()getRealPath("") 参数可具体到包名。

结果:E:\Tomcat\webapps\TEST

(2)得到IE地址栏地址:requestgetRequestURL()

结果:>

可以通过“ 类名classgetResource("")getPath()”方法实现。

举例:”String path = XMLSclassgetResource("")getPath()“

解释:以上语句就是获取到XMLS编译后的绝对路径(无法获取到java文件路径的,因为java运行的都是class文件)

平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下

一 相对路径的获得

说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

String relativelyPath=SystemgetProperty("userdir");

上述相对路径中,java项目中的文件是相对于项目的根目录

web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)

二 类加载目录的获得(即当运行时某一类时获得其装载目录)

11)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)

InputStream is=TestActionclassgetClassLoader()getResourceAsStream("testtxt");

(testtxt文件的路径为 项目名\src\testtxt;类TestAction所在包的第一级目录位于src目录下)

上式中将TestAction,testtxt替换成对应成相应的类名和文件名字即可

12)通用方法二 (此方法和11中的方法类似,不同的是此方法必须以'/'开头,

InputStream is=Test1classgetResourceAsStream("/testtxt");

(testtxt文件的路径为 项目名\src\testtxt,类Test1所在包的第一级目录位于src目录下)

三 web项目根目录的获得(发布之后)

1 从servlet出发

可建立一个servlet在其的init方法中写入如下语句

ServletContext s1=thisgetServletContext();

String temp=s1getRealPath("/"); (关键)

结果形如:D:\工具\Tomcat-60\webapps\002_ext\ (002_ext为项目名字)

如果是调用了s1getRealPath("")则输出D:\工具\Tomcat-60\webapps\002_ext(少了一个"\")

2 从>

第一步: 先获得classpath路径

String classpath = thisgetClass()getResource("/")getPath()replaceFirst("/", "");

这样子可以得到classpath路径,类似于:

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/

然后把WEB-INF/classes截取就能获得WebAPP目录啦:

String webappRoot = classpathreplaceAll("WEB-INF/classes/", "");

得到的结果就是:

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/

通过这个路径你就能获取该文件夹下的所有文件啦

第一步: 先获得classpath路径

String classpath = thisgetClass()getResource("/")getPath()replaceFirst("/", "");

这样子可以得到classpath路径,类似于:

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/

然后把WEB-INF/classes截取就能获得WebAPP目录啦:

String webappRoot = classpathreplaceAll("WEB-INF/classes/", "");

得到的结果就是:

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/

通过这个路径你就能获取该文件夹下的所有文件啦

import javautilDate;

public class Test {

// 获取包路径

private static String getPackageName(Object obj) {

return objgetClass()getPackage()getName();

}

// 获取类名

private static String getClassName(Object obj) {

return objgetClass()getSimpleName();

}

// 获取类路劲

private static String getClass(Object obj) {

return objgetClass()getName();

}

public static void main(String[] args) {

Date date = new Date();

Systemoutprintln("Package Name = " + getPackageName(date));

Systemoutprintln("Class Name = " + getClassName(date));

Systemoutprintln("Class = " + getClass(date));

}

}

输出:

Package Name = javautil

Class Name = Date

Class = javautilDate

getClass()getResource() 方法获得相对路径( 此方法在jar包中无效。返回的内容最后包含/)

例如 项目在/D:/workspace/MainStream/Test

在javaProject中,getClass()getResource("/")getFile()toString() 返回:/D:/workspace/MainStream/Test/bin/

public String getCurrentPath(){  

       //取得根目录路径  

       String rootPath=getClass()getResource("/")getFile()toString();  

       //当前目录路径  

       String currentPath1=getClass()getResource("")getFile()toString();  

       String currentPath2=getClass()getResource("")getFile()toString();  

       //当前目录的上级目录路径  

       String parentPath=getClass()getResource("/")getFile()toString();  

         

       return rootPath;         

  

   }

参考资料:

>

以上就是关于java获取某个文件夹的路径怎么写全部的内容,包括:java获取某个文件夹的路径怎么写、java 文件在服务器中定位绝对路径、如何通过Java代码获取tomcat服务器的绝对路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9786585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存