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プロパティを読み取り専用にするには、セッターを完全に削除します。プロパティを書き込み可能にしたい場合は、プロパティへの書き込みの意味を理解しName、オブジェクトの状態を適切に変換するために必要なロジックを実行する必要があります。

于 2012-10-17T20:00:49.800 に答える
1

次の 3 つの可能性が考えられます。

  • セッターを完全に削除して、読み取り専用プロパティにします
  • directory指定したディレクトリを参照するようにの値を変更します
  • (奇妙で危険です!) ファイルシステム上のディレクトリの名前を変更して、その名前が指定されたとおりになるようにします

プロパティが実際に何を表しているのかを知らなければ、これらのオプションのどれが適切であるかを実際に判断することは困難です。

于 2012-10-17T20:01:01.670 に答える
0

DirectoryInfo.Nameは読み取り専用で、変更できません。コードから削除する必要があります。ただし、ディレクトリの名前を変更したい場合は、次のように記述します。

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