【发布时间】:2013-10-04 07:41:59
【问题描述】:
既定事实:应用程序不需要独立于平台。
我已经在这里坐了一段时间了,我不知道为什么这会给我带来这么大的问题。我想做的是这样的:
1) 检查文件是否存在
2)如果它不存在,创建它然后让我知道
3)如果它确实存在,无论如何都不要试图重写它,什么都不做,让我知道
String pathToChange = "C:/Program Files/WOTA".replace("/", "\\");
JOptionPane.showMessageDialog(rootPane, pathToChange);
File file = new File(pathToChange);
if (!file.exists()) {
file.mkdirs();
if (file.mkdir()) {JOptionPane.showMessageDialog(rootPane, "C:/Program Files/WOTA was created."); }
else { JOptionPane.showMessageDialog(rootPane, "Did not create.");
}
}
我不知道为什么,但这给我带来了很多麻烦,但确实如此。哦,您会注意到我弹出了一个 JOptionPanel(对话框),其中包含它尝试创建的文件名,以便我知道传递的内容是正确的。
任何人都可以指出为什么这不起作用以及我需要做些什么才能使它起作用。更重要的是,由于我是一个自负的混蛋,我不喜欢别人为我工作,请告诉我为什么它不起作用。
顺便说一句,我正在 NetBeans 中构建所有这些。
谢谢!
【问题讨论】:
-
请分享您的代码...
-
废话!对不起。不过,为此+1。 :)
-
这段代码在我的机器上运行良好。但是
rootPane是什么?您确定您有权在C驱动器上写入文件吗? -
File#mkdirs 将返回 true/false 本身。如果您随后尝试调用 File#mkdir,它可能会返回 false,因为该目录可能已经存在。另外,请注意,在 Windows 7 下,UAC/安全模型可能会限制您在受保护的文件夹中创建目录,例如 Program Files...
-
您可以使用File#canWrite()轻松查看可以写入指定文件夹的天气
标签: java directory subdirectory