0
 DirectoryInfo directory;
 public string Name {
            get { return this.directory.Name; }
            set { this.directory.Name = value; }
        }

你好。我在 c# 中有这段代码。它不起作用我收到此错误:

属性或索引器 System.Io.FileSystemInfo.Name 不能分配给 - 它是只读的。

我能做些什么 ?

4

3 回答 3

1

正如编译器所说,DirectoryInfo的继承Name属性是只读的。表述this.directory.Name = value;错误;您不能分配给只读属性。

要使您的类的Name属性为只读,只需完全删除 setter。如果您希望该属性是可写的,那么您需要弄清楚写入您的Name属性意味着什么,并执行任何必要的逻辑来适当地转换对象的状态。

于 2012-10-17T20:00:49.800 回答
1

我能想到三种可能:

  • 完全删除 setter,使其成为只读属性
  • 更改 的值directory以引用指定目录
  • (奇怪而危险!)重命名文件系统上的目录,使其名称现在与指定的一样

在不知道您的财产真正要代表什么的情况下,很难真正说出这些选项中的哪一个是合适的(如果有的话)。

于 2012-10-17T20:01:01.670 回答
0

DirectoryInfo.Name是只读的,不能修改。您应该将其从代码中删除。然而,如果你想改变一个目录的名字,你可以这样写:

System.IO.Directory.Move("oldDirName", "newDirName");
于 2012-10-17T20:01:56.917 回答