在src文件夹外创建一个文件夹。

3
我尝试了几种方法来实现这个功能,但都没有成功。我正在尝试在Java中创建一个文件夹内的文件。该项目需要有几个文本文件,它们之间都有关联,将它们放在同一个文件夹中会更容易管理。理想情况下,此文件夹将存储在scr/之外。
以下是我目前的代码(我首先检查文件是否存在):
File testFile = new File("\\appts\\Appointments" + name + ".txt");
try {
    testFile.createNewFile();
} catch (Exception e) {
    e.printStackTrace();
}

然而,当我尝试运行这段代码时,会出现IOException异常。我已经尝试过以上的写法,包括/appts/Appointments、appts/Appointments和appts\\Appointments。我曾试图在网上搜索相关资料,但找不到有效解决方法。
编辑:我的项目目前的设置如下:
Project_Folder
    src
        com
            weebly
                roboticplayer
                    appointmentbook
                        CLASSES

以下是我希望它看起来的样子:

Project_Folder
    src
        com
            weebly
                roboticplayer
                    appointmentbook
                        CLASSES
    appts

异常的完整堆栈跟踪是什么? - JB Nizet
你使用的是哪个操作系统? - smttsp
java.io.IOException: 系统找不到指定的路径at java.io.WinNTFileSystem.createFileExclusively(Native Method)at java.io.File.createNewFile(Unknown Source)at com.weebly.roboticplayer.appointmentbook.AppointmentRunner.main(AppointmentRunner.java:55)第55行:testFile.createNewFile();操作系统为Windows 10,IDE为Eclipse。 - RoboticPlayer
1
那么,你在信息中不理解什么?你试图在不存在的目录路径下创建文件。确保目录存在。而且我上次检查时,绝对的Windows路径看起来像c:\foo\bar(Java也接受c:/foo/bar)。 - JB Nizet
那么我该如何创建路径呢?这就是我的问题所在。其他帖子中提到,可以使用“File”类在目录中创建文件。 - RoboticPlayer
1
是的,你可以。但是File类有多个方法。它们都有文档,并清楚地说明了它们的功能。阅读javadoc,那就是它的用途:http://docs.oracle.com/javase/8/docs/api/java/io/File.html#mkdirs-- - JB Nizet
3个回答

3
有两种简单的方法可以实现这个目标:
1) 绝对路径
  "C:\\users\\....\\parent_folder\\filename.txt";

2) 相对路径

 . (Single dot) is current directory
 ..(double dots) is parent directory

例如,您想在项目文件夹下创建文本文件。以下是您的文件结构。
Project_folder
    src
        Java_main_file.java
    appts

您希望从Java_main_file.java创建一个文件到appts目录下。

String filename = "..\\appts\\filename.txt"

接下来,使用 filename 创建您的文件。以下是一个链接,介绍如何创建文本文件

请注意,您需要确保创建文件的目录存在。如果不存在,将会出现错误。


但我的问题是如何创建这个文件夹。你告诉我如何将文件放入文件夹中,这很有帮助,但我仍然不知道如何创建文件夹。我尝试了调用testFile.mkdir();,但它没有起作用。 - RoboticPlayer
假设您想在 Project_folder 下创建名为 appts 的文件夹。new File("appts\\").mkdirs() 将创建该文件夹。 - smttsp
编辑了一下帖子,现在它看起来是我想要的样子。编译和运行都没问题,但是我找不到文件或文件夹。 - RoboticPlayer

0

你不能一步创建一个文件和它不存在的父目录,但是你可以先用File.mkdirs()创建父目录,然后再创建文件。


0
如果您使用的是JDK7,您可以使用nio包。
 Path path = Paths.get("C:\\appts\\Appointments");
 Files.createDirectories(path);

如果你想相对于当前文件夹进行路径操作:

 FileSystems.getDefault().getPath("appts", "Appointments");

如果您想查看绝对路径名:
 FileSystems.getDefault().getPath("appts", "Appointments").toAbsolutePath().toString();

如果你需要那个文件对象:
 FileSystems.getDefault().getPath("appts", "Appointments").toFile();

在调用 toAbsolutePath() 后,您还可以执行 .toFile()。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接