2013-05-02 69 views
1

通過閱讀this教程,我遇到了這部分對我來說不太清楚。Java中的Files.move(Path,Path)

空目錄可以移動。如果該目錄不爲空,則在移動該目錄的內容而不移動該目錄的內容時,允許移動目錄 。

我明顯地明白空白的目錄是可以移動的。然而,引用的第二部分在我看來有點令人困惑。換句話說,任何人都可以表達同樣的概念?提前致謝。

回答

4

在UNIX系統上,移動同一分區內的目錄通常包括重命名目錄。在這種情況下,即使目錄包含文件,該方法也可以工作。

這實際上是您發佈的鏈接中的下一句話,它提供了即使目錄不爲空也可以使用移動的示例。

+0

是唯一的情況嗎? – Rollerball 2013-05-02 15:03:19

+0

換言之,只要重命名目錄涉及複製/刪除目錄的內容,就不允許移動操作。 – 2013-05-02 15:05:26

+0

@Rollerball我不是操作系統專家,如果函數不需要移動文件(例如,如果它只是修改文件夾以「移動」文件夾),操作似乎通常工作,這是操作系統特定的。我確信這裏有人可以告訴你不同的操作系統如何處理這個問題 – LionC 2013-05-02 15:07:12

1

看一看教程鏈接的Javadoc:

http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#move%28java.nio.file.Path,%20java.nio.file.Path,%20java.nio.file.CopyOption...%29

[...]例如,重命名同一FileStore的目錄將 通常不需要移動條目該目錄。當移動 目錄需要移動其條目時,此方法將失敗 (通過拋出IOException)。移動文件樹可能涉及複製 而不是移動目錄,這可以使用複製 方法與Files.walkFileTree實用程序方法一起完成。

相關問題