在java项目中如何获取某个文件的路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java项目中如何获取某个文件的路径相关的知识,希望对你有一定的参考价值。

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

public class PathTest

    public static void main(String[] args)
    
        File file = new File(".\\\\src\\\\baidu");
        System.out.println(file.getAbsolutePath());
        try
        
            System.out.println(file.getCanonicalPath());
         catch (IOException e)
        
            e.printStackTrace();
        
    

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

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

G:\\xhuoj\\konw\\.\\src\\baidu
G:\\xhuoj\\konw\\src\\baidu

参考技术A public String getAbsolutePath()
返回抽象路径名的绝对路径名字符串。
如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 指定。否则,使用与系统有关的方式分析此路径名。在 UNIX 系统上,通过根据当前用户目录分析某一相对路径名,可使该路径名成为绝对路径名。在 Microsoft Windows 系统上,通过由路径名指定的当前驱动器目录(如果有)来分析某一相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录来分析它。

返回:
绝对路径名字符串,它与此抽象路径名表示相同的文件或目录的
抛出:
SecurityException - 如果无法访问所需的系统属性值。

public File getAbsoluteFile()
返回抽象路径名的绝对路径名形式。等同于 new File(this.getAbsolutePath()())。

返回:
表示与此抽象路径名相同的文件或目录的绝对抽象路径名
抛出:
SecurityException - 如果无法访问所需的系统属性值。

public File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。
如果此抽象路径名并不表示一个目录,则此方法将返回 null。否则,为目录中的每个文件或目录返回一个 File 对象数组。表示目录本身及其父目录的路径名不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用 File(File, String) 构造方法构造。所以,如果此路径名是绝对路径名,则得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,则得到的每个路径名都是相对于同一目录的路径名。

不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。

返回:
表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组。如果目录为空,则数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对目录进行读取访问
参考技术B 如果是在tomcat等服务器中运行的话,用ServletContext中的getRealPath()方法可以获取指定文件的绝对路径,如:getRealPath("/WEB-INF/db.xml"); 参考技术C getRealPath()本回答被提问者采纳

以上是关于在java项目中如何获取某个文件的路径的主要内容,如果未能解决你的问题,请参考以下文章

我的javaEE项目的spring mvc controller里如何获取某个文件夹的路径呢?

如何在java中获取当前项目的路径

java 项目如何获取项目所在的物理根路径

在java web项目中,如何获取项目的绝对路径(考虑到后期移植不能写死),大神帮忙!

java中如何判断web工程中图片的绝对路径是不是存在

普通JAVA类 如何获取,WEB项目的根路径