C#属性FileSystem

时间:2012-10-17 19:59:39

标签: c# asp.net filesystems

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

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

  

无法分配属性或索引器System.Io.FileSystemInfo.Name   到 - 它是只读的。

我该怎么办?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我可以想到三种可能性:

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

如果不知道您的财产真正意味着什么,那么很难真正说出哪些选项适合(如果有的话)。

答案 2 :(得分:0)

DirectoryInfo.Name是只读的,您无法修改它。您应该从代码中删除它。但是,如果您想更改目录的名称,可以这样写:

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