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();