如何在' srch#39;中创建文件(源)目录而不指定驱动器

时间:2014-10-01 19:29:23

标签: java java-ee servlets src

我知道如何使用特定路径在Java中创建文件 我想在项目的源文件夹中创建文件而不指定驱动器,因为它可以从PC更改为PC。

我试图使用:

File targetFile = new File("/src/SavedGames/uploadedFile.xml");
targetFile.createNewFile();

在' src':

之前加点
File targetFile = new File("./src/SavedGames/uploadedFile.xml");
targetFile.createNewFile();

\\

File targetFile = new File("\\src\\SavedGames\\uploadedFile.xml");
targetFile.createNewFile();

它不起作用,它会抛出异常。

这个可以在我的Apache服务器文件夹上创建它:

File targetFile = new File("uploadedFile.xml");
targetFile.createNewFile();

这是层次结构:
enter image description here

代码在 LoadGameServlet.java

上运行

2 个答案:

答案 0 :(得分:0)

即使在创建实际文件之前,您也可以使用类似System.out.println(targetFile.getAbsolutePath())的内容来调试文件的创建位置。

答案 1 :(得分:0)

经过大量搜索,我发现了一种方法。

File targetFile = new File(new File(LoadGameServlet.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent() + "\\uploadedFile.xml");
String decoderPath = java.net.URLDecoder.decode(targetFile.getPath(), "UTF-8");
String newPath = decoderPath .replaceAll("build\\\\web\\\\WEB-INF\\\\classes\\\\Servlets", "src\\\\java\\\\SavedGames");
targetFile = new File(newPath);
targetFile.createNewFile();

我检查了它,它工作正常。

感谢您的帮助。