获取文件路径

时间:2012-10-15 20:25:20

标签: java file

有没有办法让计算机上存在文件的完整路径? 例如,我想获取桌面上文件夹中文件的完整路径

我尝试使用:

  File f = new File("help.chm");

  String f2=f.getAbsolutePath();
  f3=f3.replaceAll("\\\\","/" );
  System.out.println("Path:"+f3);

但它给了我这样一个项目的路径:

  

C:/Users/toshiba/Documents/NetBeansProjects/test/help.chm

虽然文件不在那里。

5 个答案:

答案 0 :(得分:2)

如果使用file使用new File("filename")创建relative path,则无法使用file.getAbsolutePath()获取文件的绝对路径,因为相对路径是根据到默认用户主目录或JVM路径。

看看Java Doc: -

  

路径名,无论是抽象的还是字符串形式,都可以是绝对的   或亲戚。绝对路径名是完整的,没有其他   需要信息才能找到它表示的文件。

     

相反,相对路径名必须按照解释来解释   从其他路径名获取的信息。默认情况下,类在   java.io包总是解析相对的路径名   当前用户目录。该目录由系统属性命名   user.dir,通常是Java虚拟的目录   机器被调用。

因此,要获得此案例的absolute path,您实际上必须自己编写路径。获取absolute path到保存file的目录,然后将file name附加到其中。

答案 1 :(得分:0)

File表示文件路径,不一定是磁盘上存在的文件 - 即File磁盘上不必存在该文件对象不是null

这就是为什么有File.exists()方法。

答案 2 :(得分:0)

路径“help.chm”将相对于启动JVM的目录,在您的情况下似乎是C:/Users/toshiba/Documents/NetBeansProjects/test/

要获取桌面路径,您需要使用Windows中桌面目录的绝对路径,这将是C:/Users/toshiba/Desktop/help.chm

的行。

答案 3 :(得分:0)

由于其他答案不包括您的问题,这是我的评论:

要获取文件的路径,首先需要告诉您的java程序它在哪里或如何找到它。

对于您的具体示例,您可以使用System.getProperty("user.home") + "/Desktop";获取桌面路径,然后您可以在桌面上的文件夹中搜索匹配的文件名。

请阅读此处以了解如何搜索文件:docs.oracle.com/javase/tutorial/essential/io/find.html

答案 4 :(得分:0)

您正在尝试从(默认文件夹)

中读取文件
C:/Users/toshiba/Documents/NetBeansProjects/test/

文件不存在,但将要文件的路径为

C:/Users/toshiba/Documents/NetBeansProjects/test/

如果您从实际位置读取文件:

文件f =新文件(“C:/Users/toshiba/Desktop/help.chm”);

您会看到exists()返回true。

 System.out.println(f.exists());

然后:

  String f2=f.getCanonicalPath();