有没有办法让计算机上存在文件的完整路径? 例如,我想获取桌面上文件夹中文件的完整路径
我尝试使用:
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
虽然文件不在那里。
答案 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();