2011-11-07 39 views
1

我使用myFileObject.mkdirs()创建目录。在Windows中,每个创建的目录都被标记为只读。尽管我可以(奇怪地)仍然写入目录,但是在删除东西时会造成恶化。如何在Windows中从Java创建非只读目录

是否有一些系统属性或我可以设置,以便新目录的默认权限是读写? (我在SO和网上搜索过,除了其他人抱怨同样的事情外,没有发现任何东西。)不得不为setWritable调用目录树是一件痛苦的事情。 (如果它有所作为,我在Windows 7上使用J2SE 1.6.0_23)。

+1

Java使用操作系统指定的默认权限创建目录/文件。如果权限不正确,我建议您在操作系统级别更改它。 –

+0

@Peter,我不认为他在谈论权限,而是关于只读属性。 –

+0

@泰德,我不能重现这一点。你能提供更多的信息,也许一些简单的代码展示了这个问题?你有没有试过最新的更新,6u29? –

回答

2

据我所知,没有办法从java这样做它不是java问题。例如,让我们从cmd创建文件夹,您将看到相同的问题(ms error)。
CMD
的md sampleDir
ATTRIB-sampleDir

属性将保持,因为它是在创建步骤。但是,如果您看到“只读”的蓝色方块,则默认情况下它不会被标记为只读。蓝色代表未确定的空白状态。只有在框中有复选标记的情况下,它才会被标记为只读。

如果你可以创建.bat文件,将创建这份工作,你可以从Java调用它:

Runtime.getRuntime().exec("cmd /c run.bat"); 

这是不正确的方式,但如果它的工作 - 这是更好然后什么。

+0

您链接到的文章描述了GUI中的限制,它没有描述错误,当然也不能解释为什么Ted的目录被标记为只读(或根据具体情况分配了奇怪的权限)。 –

+0

哦,我想我明白了 - 你是说Ted可能错误地认为目录是只读的,因为GUI有误导性? –

+0

是的,据我所知,这个属性(创建文件的默认属性)没有说这个文件夹是只读的。但一些限制可能是(需要谷歌:)),但它不是问题的Java。 – Psycho

相关问题