使用Java在Windows中创建新文件夹时遇到问题

林斯温德

事实证明:应用程序不必独立于平台。

我坐在这里已经有一段时间了,我不知道为什么这会给我造成很大的麻烦。我想做的是这样的:

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中构建所有这些。

谢谢!

疯狂程序员

File#mkdirsfalse自行返回

更好的方法可能是使用类似...

if (!file.exists() && !file.mkdirs()) {
    // Can not make the directory
} else {
    // Directories exists or was created
}

在Windows 7,UAC和更新的安全模型下,您可能无法写入磁盘上的某些位置,包括Program Files(我们在工作中遇到此问题:P)。

更糟糕的是,在Java 6下,它File#canWrite可以返回false正数(即,true当您无法写入指定位置时返回)。我们发现的真正奇怪的事情是,您甚至可以尝试写入一个引发异常的文件...

过去我们所做的是use File#canWrite,如果return true,则实际上将文件写入指定的位置,检查文件是否存在并检查文件的内容。

如果这行得通,那么只有我们相信结果。

据我了解,这可能已经在Java 7中修复了...谢谢Windows:P

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建新文件夹/目录时遇到问题

Java中的mkdir创建新文件夹

当已经存在同名文件夹时,如何使用boost创建新文件夹?

使用Powershell监视文件夹中的新文件,但忽略新文件夹

如何使用Finder在嵌套文件夹层次结构中创建新文件夹?

在Windows和Linux计算机上使用Java程序创建一个新文件夹

Android新文件夹问题

如何在Mutt中创建新文件夹

无法在首页中创建新文件夹

Multer使用数据创建新文件夹

观看在目录中创建的新文件夹,输出新文件的路径

在 Python 中将文件放置在变量文件夹中时遇到问题

Gitlab应该使用现有文件夹时创建了一个新文件夹

在最打开的Windows资源管理器中创建新文件夹

使用pathlib在python中创建新文件夹并将文件写入其中

使用perticular目录中的jenkins为每个EAR文件构建创建新文件夹

使用线程将电子邮件复制到javamail中的文件夹时遇到问题

如何使用Java在给定路径下创建一个新文件夹?

使用Mod Rewrite重写文件夹位置时遇到问题

使用区域文件夹结构在 Razor 页面中加载图像时遇到问题

在 AppleScript 中使用选择文件夹时遇到问题

如何使用Java代码刷新文件夹?

如何使用diff创建补丁程序以删除文件夹并创建新文件夹?

如何使用Storage Access Framework在SD卡中创建新文件夹?

使用Google App脚本在云端硬盘中创建新文件夹

如何使用AWS PowerShell在S3中创建新文件夹

使用REST API在Google驱动器中创建新文件夹

从新文件夹(而不是文件夹)中的文件创建符号链接

在Win 7的特定文件夹中创建新文件时执行批处理文件