2012-10-17 111 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");