我正在使用myFileObject.mkdirs()
创建目录。在Windows中,每个创建的目录都标记为只读。虽然我可以(奇怪地)仍然写入目录,但在删除内容时会造成恶化。
是否有一些系统属性或我可以设置的东西,以便新目录的默认权限是读写? (我搜索了SO和网络,除了其他人抱怨同样的事情之外没有找到任何东西。)必须为目录树调用setWritable是一件痛苦的事。 (如果它有所不同,我在Windows 7上使用J2SE 1.6.0_23。)
答案 0 :(得分:2)
据我所知,没有办法从java做到这一点,这不是java问题。例如,让我们从cmd创建文件夹,您将看到同样的问题(ms error)。
cmd
md sampleDir
attrib -r sampleDir
属性将保持与创建步骤一样。但是如果您看到“只读”的蓝色方块,则默认情况下它不会标记为只读。蓝色代表一种未确定的空白状态。只有在框中有复选标记时才会将其标记为只读。
如果您可以创建将创建此作业的.bat文件,您可以从Java调用它:
Runtime.getRuntime().exec("cmd /c run.bat");
这不是真正的方式,但如果它有效 - 那就更好了。