2012-10-17 152 views
0
DirectoryInfo directory; 
public string Name { 
      get { return this.directory.Name; } 
      set { this.directory.Name = value; } 
     } 

嗨。我有這個代碼在C#中。它不起作用我得到這個錯誤:C#屬性文件系統

Property or Indexer System.Io.FileSystemInfo.Name cannot be assigned to -- it's read only.

我該怎麼辦?

+1

你想做什麼? 'DirectoryInfo'完全按照它所說的做 - 讓你獲得目錄上的信息。你想改變它指向的目錄嗎? –

回答

1

我能想到的三種可能性:

  • 完全取出二傳手,使其成爲一個只讀屬性
  • 變化directory值是指在指定的目錄
  • (奇怪的和危險的!)重命名目錄的文件系統上,它的名稱現在爲指定

不知道你的財產是真正的意思表示,它的HA rd確實說出哪些選項是適當的,如果有的話。

+0

感謝您的想法。問題解決了 。 ! – TGeorge

1

就像編譯器說的那樣,DirectoryInfo的繼承Name屬性是隻讀的。表達式this.directory.Name = value;是錯誤的;您不能分配給只讀屬性。

要使您的課程'Name屬性爲只讀屬性,只需徹底刪除setter。如果您希望該屬性可寫,那麼您需要弄清楚寫入屬性的含義,並執行適當變換對象狀態所需的任何邏輯。

0

DirectoryInfo.Name是隻讀的,你不能修改它。你應該從你的代碼中刪除它。然而,如果你想改變一個目錄的名字,你會寫這樣的:

System.IO.Directory.Move("oldDirName", "newDirName");