1

我目前正在为 Minecraft 创建一个 mod。这是另一个计算机模块,我需要它来将用户在计算机上创建的所有文件和文件夹存储到计算机自己的个人文件夹中。对于计算机的每个实例,将创建一个具有该计算机编号的文件夹,该文件夹将放置该特定计算机内的所有文件和文件夹,例如:假设文件夹位于目录 C 中: /mc/mods 然后第一台计算机将具有文件夹 C:/mc/mods/1 第二个 C:/mc/mods/2 等等,就像 computercraft 一样。我的问题是,尽管进行了多次尝试和大量研究,但我既不能创建文件夹也不能创建文件。这是我的代码在放置块时的样子。

File file = new File("C:/mc/mods");
if (file.isDirectory() == false) {
    file.mkdir();
}
String s = "C:/mc/mods/1";
file = new File(s);
int iii = 2;
while (file.isDirectory()) {
    String ss = s.substring(0,s.length() - 1);
    s = ss + iii;
    file = new File(s);
    iii += 1;
}
file.mkdir();
file = new File("C:/mc/mods/locs.txt");
try {
file.createNewFile();
} catch (Exception e) {
    System.out.println(e);
}
try {
PrintWriter outp = new PrintWriter(new BufferedWriter(new FileWriter("C:/mc/mods/locs.txt",true)));
outp.println(x + "," + y + "," + z + "," + Integer.toString(iii - 1));
outp.close();
} catch (Exception e) {
    System.out.println(e);
}

它基本上只是确保我创建了主文件夹,然后它为特定计算机创建了一个子文件夹,并在主文件夹中记录了该计算机的确切位置和编号。如果有人可以帮助我弄清楚如何正确地做到这一点,那将非常感谢。此外,我对 java 还是很陌生,所以我很抱歉我正在慢慢修复所有糟糕的性能编码。

4

1 回答 1

0

看来您正在尝试在没有管理员许可的情况下在根目录(“C:/”)写入。尝试基于 Minecraft.getWorkingDirectory 的文件目录(我不记得确切的方法)。

由于您没有提供任何类型的日志,因此无法确定,但我希望这可行。

于 2014-03-30T00:00:21.863 回答