2011-11-07 38 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

相關問題