2017-03-16 74 views
0

在Windows資源管理器,你可以有這樣的結構:文件已存在當移動文件

  • 主目錄
    • 新目錄(a directory)
    • 新目錄(a file without an extension)

我結構是:

  • 主目錄
    • 新目錄(a directory)
    • 一些FILE.TXT

我試圖做的是重命名 「有些FILE.TXT」 到「新目錄「,就像你可以在資源管理器中。我使用File.Move("/Main Directory/Some File.txt", "/Main Directory/New Directory");

不過,我不斷收到一個異常說,當該文件已存在

無法創建文件。

我認爲它不喜歡有一個名爲「新目錄」的目錄。但考慮到同名的目錄和文件可能共存這一事實,我不明白爲什麼Move API會對此有所贅述。

有什麼方法可以告訴它在複製文件時忽略具有相同名稱的目錄,反之亦然?

編輯:最近我重新安裝了Windows和忘記重新打開文件擴展名,所以我在資源管理器中重命名不修改擴展名像我習慣了這樣做。通過擴展名,我無法執行重命名。所以行爲實際上是預期的。如果有人在將來做同樣的事情,我會在這裏留下。

+2

「但是,考慮到目錄和文件名稱可能共存的事實......」只是錯誤的:它們不能共存同名,因爲目錄就像一個文件,但有一些差異。 – zx485

+2

你實際上是否嘗試重命名一個文件與文件夾名稱相同?我想你會發現你實際上***不能做到這一點。 – Abion47

+0

@ zx485我剛剛意識到我的頭腦總是空白,文件擴展名關閉,所以我在資源管理器中重命名並沒有修改擴展名。使用擴展名時,我無法執行重命名。 – RareNCool

回答

3

...鑑於目錄和文件具有相同的名稱可以共存......

這種說法是不正確。容器中的每個對象都必須具有不同的名稱。據推測,你的shell被配置爲隱藏註冊文件類型的擴展,這導致你做出這個錯誤的陳述。

報告的錯誤消息是準確的,無需重命名其中一個文件即可避免。

+0

你是對的。請參閱我的編輯。 – RareNCool

+0

從技術上講,在Windows資源管理器中可能有兩個項目具有兩個相同的顯示名稱。 – user2120666

+0

@ user2120666我指的是文件系統,這與'File.Move'很重要。 –

相關問題