2009-11-30 48 views
1

讓: 文件夾重命名 C:\ TEMP \ Torename 到: C:\ TEMP \ ToRename如何在C#中重命名文件夾/目錄?

Directory.Move不起作用,因爲該文件夾(:\ TEMP \ Torename)已經存在。

我正在尋找不涉及創建臨時文件夾的解決方案。 我有這個解決方案: 移動到臨時文件夾(唯一名稱),例如c:\ temp \ TorenameTemp 從臨時文件夾移動到新文件夾。例如c:\ temp \ ToRename 問題是我的文件夾可能變得非常大,移動可能需要一些時間才能執行。我喜歡windows explorer解決方案,用戶無論大小如何都可以在其中進行重命名。

感謝您的時間。

+0

您試圖更改現有文件夾的大小寫嗎? – SLaks 2009-11-30 00:49:02

+0

首先創建名稱正確的目錄會更容易嗎? – 2009-11-30 00:52:19

+0

SLaks:是的 馬克:是的 - 我很喜歡,但我們無法控制用戶,信息正在保存在磁盤上,這就是我需要解決此問題的原因 – 2009-12-15 02:21:37

回答

6
Directory.Move(@"C:\Temp\Dir1", @"C:\Temp\dir1_temp"); 
Directory.Move(@"C:\Temp\dir1_temp", @"C:\Temp\dir1"); 

除非將文件移動到不同的卷,否則文件將不會移動。如果目標位於同一捲上,則只有目錄名稱會更改。

+0

此解決方案將用於網絡驅動器。 (\\ server \ MyShare \ dir1) – 2009-12-15 02:23:56

+0

只要音量是相同的,你會沒事的。 – 2009-12-15 17:55:59

4

Directory.Move不能與目錄大小一起縮放(除非您複製到另一個驅動器),所以調用它兩次沒有任何問題。

+0

值得注意的是它必須如何處理B +樹的工作。 – 2012-08-27 17:30:08

+0

@ColeJohnson:什麼? – SLaks 2012-08-27 17:49:36

+0

指針。它只是更改目錄的父目錄 – 2012-08-27 18:08:08

-1

Directory.Move的目錄 File.Move文件

0

這裏是如何能夠做到:

My.Computer.FileSystem.RenameDirectory("c:\temp\Torename", "ToRename") 

第一個參數是當前目錄,第二個參數是的新名稱該目錄。

來源:FileSystem.RenameDirectory Method

+0

此示例在VB.NET中。 C#自然沒有「我的」命名空間,不幸的是沒有替代它。您必須在項目中添加Microsoft.VisualBasic引用,並將其下的FileIO命名空間導入到您希望使用等效語句「FileSystem.RenameDirectory(」c:\ temp \ Torename「,」ToRename「 );」。希望這可以幫助! :) – Jeff 2016-05-16 05:51:58