gpt4 book ai didi

java - 我如何获取放置在java项目文件夹中的本地文件夹的url

转载 作者:行者123 更新时间:2023-12-02 03:31:00 26 4
gpt4 key购买 nike

我正在尝试将文件从外部文件夹复制到 Java 项目文件夹中的本地文件夹。问题是,我不想粘贴本地目标文件夹的确切 url,因为如果项目移动到其他地方,它可能无法工作。那么,有没有办法通过代码获取目标文件夹(即使移动时也会自动获取)?

这是我用于复制的函数

private static void copyToUpload(File source,String name) throws IOException {           
String tail = source.getName().substring(source.getName().lastIndexOf("."));
Files.copy(source.toPath(), (new File("src/"+name+tail)).toPath(), StandardCopyOption.REPLACE_EXISTING);
}

调用:

> protected void doPost(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
> File src = new File(request.getParameter("selectedFile"));
> copyToUpload(src, "hello"); }

预期:

src: C:\\..\test.jpg
des: C:\\Test\src\test.jpg

实际:

NoSuchFileException

堆栈跟踪:

>    java.nio.file.NoSuchFileException:
> C:\Users\Admin\Downloads\60788720_1251034635090935_8981200640877264896_n.jpg
> -> src\hello.jpg
> sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
> sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
> sun.nio.fs.WindowsFileCopy.copy(WindowsFileCopy.java:205)
> sun.nio.fs.WindowsFileSystemProvider.copy(WindowsFileSystemProvider.java:278)
> java.nio.file.Files.copy(Files.java:1274)
> controller.upload.copyToUpload(upload.java:30)
> controller.upload.doPost(upload.java:78)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

最佳答案

只需将文件放入 src/main/resources 文件夹

您可以使用ClassLoader.getResource获取文件:

String resource = ClassLoader.getSystemClassLoader().getResource("test.jpg").getFile();
File test = new File(resource);

关于java - 我如何获取放置在java项目文件夹中的本地文件夹的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56884656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com