Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取文件路径_Java_File - Fatal编程技术网

Java 获取文件路径

Java 获取文件路径,java,file,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/h

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

我尝试使用:

  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


尽管文件不在那里。

文件是文件路径的表示,不一定是磁盘上存在的文件-即文件对象不为
时,文件不必存在于磁盘上


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

如果使用
新文件(“文件名”)
创建
文件,即
相对路径,则无法使用
File.getAbsolutePath()
获取文件的绝对路径,因为相对路径是根据默认用户主目录或JVM路径构建的

看看:-

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

相反,相对路径名必须按照 从其他路径名获取的信息。默认情况下,中的类 java.io包始终根据 当前用户目录。此目录由系统属性命名 user.dir,通常是Java虚拟机所在的目录 计算机被调用

因此,要获得这种情况下的
绝对路径
,实际上必须自己编写路径。获取
绝对路径
直到保存
文件的目录
,并将
文件名
附加到该目录。

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


要获得桌面的路径,您需要使用Windows中桌面目录的绝对路径,该路径类似于
C:/Users/toshiba/desktop/help.chm

,因为其他答案不包括您的问题,我的评论如下:

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

对于您的特定示例,您可以使用以下命令获取桌面路径:
System.getProperty(“user.home”)+“/desktop”然后您可以在桌面上的文件夹中搜索匹配的文件名


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

您试图从中读取文件(默认文件夹)

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

C:/Users/toshiba/Documents/NetBeansProjects/test/
如果从文件的实际位置读取文件:

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

您将看到
exists()
返回true

 System.out.println(f.exists());
然后:


您正在查找
getCanonicalPath()
。顺便说一句,请参见,该文件不是“检查是否存在”。@tuergeist:但该文件存在首先需要找到该文件,然后才能获取其路径。对于您的特定示例,您可以使用以下命令获取桌面路径:
System.getProperty(“user.home”)+“/desktop”然后您可以在桌面上的文件夹中搜索匹配的文件名。阅读此处了解如何搜索文件:您可以获得无法获得的绝对值。好的,但我想获得文件的正确路径,它位于桌面上。您的意思是我必须编写路径吗??
 System.out.println(f.exists());
  String f2=f.getCanonicalPath();