2011-12-29 56 views
0

我想在使用c#時重命名大文件。 如果我有幾個大文件,如果我使用.IO.move功能 我的文件將被複制與正確的名稱和舊的將被銷燬。 這將需要非常長的時間與大文件重命名大文件

我找不到一個好的解決方案。 任何人的想法適合大文件?

+1

如果你從一個卷移動到另一個卷,它是一個副本+刪除,這是不可避免的。 – Joe 2011-12-29 21:00:45

回答

6

無論您選擇哪種解決方案 - 如果您在不同的邏輯/物理磁盤之間移動文件 - 您無法對其執行任何操作。移動數據需要一些時間。

+0

也許我有點不清楚,我想重命名一個文件,但是我不想用這個文件做很多事情,比如使用.io.move(oldname,newname)方法 – ComputerIntelligentAgent 2011-12-29 21:01:48

+0

,因爲這個方法將移動和刪除東西,在這種情況下有幾個千兆字節處理,不是很快 – ComputerIntelligentAgent 2011-12-29 21:04:03

+0

@ComputerIntelligentAgent:只要您在不同的磁盤之間移動文件 - 讀取和寫入所有文件的字節總是需要一些時間 – zerkms 2011-12-29 21:17:21

1

你可以create a new hardlink,然後刪除原來的。這隻會影響文件系統元數據,不會複製文件。

2

你測試了你的假設嗎?我做了,我發現如果您使用System.IO.File.Move,並且目標位置與物理物理邏輯磁盤相同,則該文件只是重命名。這並不需要很長時間。

+0

沒有物理但邏輯 – zerkms 2011-12-29 21:16:32

+0

@zerkms更正,謝謝。 – phoog 2011-12-29 21:21:26