在Java文件中指定相对路径

在Java文件中指定相对路径,java,image,Java,Image,我正在使用Spring和Hibernate上传图像。我正在服务器上保存图像,如下所示 File savedFile = new File("E:/Project/SpringHibernet/MultiplexTicketBooking/web/images/" + itemName); item.write(savedFile); 其中,itemName是解析请求后的图像文件名(enctype=“multipart/form data”)。但是,我需要提到文件的构造函数中的相对路径。如下图所

我正在使用Spring和Hibernate上传图像。我正在服务器上保存图像,如下所示

File savedFile = new File("E:/Project/SpringHibernet/MultiplexTicketBooking/web/images/" + itemName);
item.write(savedFile);
其中,
itemName
是解析请求后的图像文件名(
enctype=“multipart/form data”
)。但是,我需要提到
文件的构造函数中的相对路径。如下图所示

File savedFile = new File("MultiplexTicketBooking/web/images/" + itemName);
item.write(savedFile);

但是抛出
FileNotFoundException
无效。在Java中,是否有方法使用
文件
指定相对路径?

您可以使用
文件
指定绝对路径和相对路径。可以抛出
FileNotFoundException
,因为文件夹可能在那里。首先尝试使用中的
mkdirs()
方法创建所需的文件夹结构,以便将文件保存到要保存的位置。

您可以使用以下命令获取项目的路径-

File file = new File("");
System.out.println("" + file.getAbsolutePath());
因此,您可以有一个
常量
属性
文件,在该文件中,您可以在相对路径之后定义路径,即
MultiplexTicketBooking/web/images/

您可以使用从
文件.getAbsolutePath()
获得的路径附加路径,这将是文件的真实路径。-
file.getAbsolutePath()+MultiplexTicketBooking/web/images/


确保项目路径后的文件夹存在,即
MultiplexTicketBooking/web/images/

尝试从程序打印工作目录

String curDir = System.getProperty("user.dir");
给你那个目录。然后检查该目录中是否存在目录
MultiplexTicketBooking/web/images/


无法统计我对当前目录的误解次数,并且花了一些时间查找我写入的文件…

服务器似乎应该提供方法或目录中可能看到的功能。基于这些与服务器相关且可复制的路径类型构建路径是常见的。不要使用像
user.dir
这样的东西,这在服务器上几乎没有意义

更新 与其使用
“\\”
,我倾向于用以下内容替换它,这将导致为每个平台使用正确的文件分隔符。当客户端决定将基于MS/ISS的服务器换成Linux/Tomcat堆栈时,保持跨平台兼容性


有关详细信息,请参阅。

我做了如下操作
ServletContext sc=request.getSession().getServletContext()
File savedFile=新文件(sc.getRealPath(“images”)+“\\\”+itemName)并且它正在工作。谢谢。@AndrewThompson-假设我的路径是网络服务器上的
\\ADMIN\keyur\Workspace\B2B解决方案\WebContent\product\u images
,我需要使用什么?
ServletContext sc=request.getSession().getServletContext(); 
File savedFile = new File(sc.getRealPath("images")+"\\" + itemName);
File savedFile = new File(sc.getRealPath("images"), itemName); //note the ','