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

안녕하세요. 나는이 코드를 C#에 가지고있다. 작동하지 않습니다.이 오류가 발생합니다.C# 속성 FileSystem

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

어떻게해야합니까?

+1

무엇을하려고합니까? 'DirectoryInfo'는 디렉토리에 대한 정보를 얻습니다. 가리키는 디렉토리를 변경하려고합니까? –

답변

1

을 생각할 수 있습니다 :

  • 가 완전히 세터를 제거 그것을 읽기 전용 속성
  • 변경 지정된 디렉토리를 참조하는 directory의 값을
  • (엽기 위험 !) 파일 시스템의 디렉토리 이름을 이제 이름이 지정되도록 바꿉니다.

귀하의 속성이 실제로 표현하려고하는 것을 모른 채, 그것은 실제로 이러한 옵션 중 어느 것이 적절한 것인지 말할 수 있습니다.

+0

당신의 아이디어에 감사드립니다. 문제 해결됨 . ! – TGeorge

1

마찬가지로 컴파일러에서 말한 것처럼 DirectoryInfo의 상속 된 Name 속성은 읽기 전용입니다. 표현식 this.directory.Name = value;은 잘못된 것입니다. 읽기 전용 속성에는 할당 할 수 없습니다.

클래스 'Name'속성을 읽기 전용으로 설정하려면 설정 도구를 모두 제거하십시오. 속성을 쓰기 가능하게하려면 속성 Name에 쓸 내용이 무엇인지 파악하고 개체의 상태를 적절하게 변환하는 데 필요한 논리를 수행해야합니다. 나는 세 가지 가능성을

0

DirectoryInfo.Name은 읽기 전용이므로 수정할 수 없습니다. 코드에서 제거해야합니다. 그러나 디렉토리 이름을 변경하려면 다음과 같이 작성하십시오.

System.IO.Directory.Move("oldDirName", "newDirName"); 
관련 문제