2011-11-10 5 views
16

File.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly); 파일을 읽기 전용으로 설정하면 필요한 경우 다시 읽기/쓰기로 설정하는 방법은 무엇입니까?C# 읽기 전용 파일 읽기/쓰기

나는이 파일이 FileAttributes.Normal 인 것으로 의심되지만 파일의 다른 속성을 변경합니까? MSDN 사이트에 설명이 담긴 메모가 없습니다 ...

파일은 정상이며 다른 속성은 설정되지 않았습니다. 이 속성은 단독으로 사용될 경우에만 유효한 입니다.

감사

답변

36

단지 ReadOnly 속성을 제거하려면, 당신은 같은 것을 할 것 :

File.SetAttributes("C:\\myfile.txt", File.GetAttributes("C:\\myfile.txt") & ~FileAttributes.ReadOnly); 

이것을 ReadOnly 속성을 제거하지만, 이미 존재 다른 속성을 보존 파일.

+0

'~'는 속성을 뒤집습니까? –

+2

꽤 많이 -'~'연산자는 주어진 값의 비트 보수를 반환합니다. 의미 상으로, 위의 내용은 "파일'myfile.txt'의 속성을'myfile.txt' *의 속성으로 설정합니다 (ReadOnly 속성을 제외하고 *)." – matt

+0

괜찮습니다. :) thanks –

8

File.SetAttributes가 파일의 모든 특성을 대체합니다.

속성을 설정하고 제거하는 적절한 방법은 먼저 속성을 가져 와서 변경 사항을 적용하고 설정하는 것입니다.

var attr = File.GetAttributes(path); 

// set read-only 
attr = attr | FileAttributes.ReadOnly; 
File.SetAttributes(attr); 

// unset read-only 
attr = attr & ~FileAttributes.ReadOnly; 
File.SetAttributes(attr);