C#에서 숨김(Hidden) 속성이 설정된 파일은 일반적인 방식으로 바로 열 수 없습니다. 따라서 숨김 파일을 열고 내용을 읽으려면 먼저 파일의 숨김 속성을 해제하여 보이는 상태로 만든 후, 일반 텍스트 파일처럼 처리하고, 작업이 끝나면 다시 숨김 속성을 설정해 주는 것이 올바른 절차입니다.
1단계: 파일의 숨김 속성 해제하기
FileInfo 클래스를 사용해 대상 파일의 Attributes 속성에서 Hidden 플래그를 제거하면 파일이 화면에 나타나게 됩니다.
FileInfo file = new FileInfo(Environment.CurrentDirectory + @"\myFile.txt"); file.Attributes &= ~FileAttributes.Hidden;
위 코드에서 비트 연산자 &= ~FileAttributes.Hidden는 기존 속성 값에서 Hidden 비트만 제거하며, 파일이 가진 다른 속성(읽기 전용, 아카이브 등)은 그대로 유지됩니다.
2단계: 일반 텍스트 파일처럼 열어 내용 읽기
숨김 속성이 해제되었으므로 이제 StreamReader를 사용해 평소처럼 파일을 열고 내용을 한 줄씩 읽을 수 있습니다.
using (StreamReader sr = new StreamReader("myFile.txt")) {
string line;
while ((line = sr.ReadLine()) != null) {
Console.WriteLine(line);
}
}using 문을 사용하면 파일을 모두 읽은 후 StreamReader가 자동으로 닫히므로 리소스 누수를 걱정할 필요가 없습니다.
3단계: 작업 후 다시 숨김 속성 설정하기
파일 읽기가 끝났다면 원래 상태로 되돌리기 위해 Hidden 속성을 다시 부여합니다.
file.Attributes |= FileAttributes.Hidden;
비트 OR 연산자(|=)를 사용하면 기존 속성에 Hidden 플래그만 추가되므로 안전합니다.
정리
숨김 파일을 다루는 전체 흐름은 다음과 같습니다.
① FileInfo로 파일 객체 생성 → ② Hidden 속성 해제 → ③ StreamReader로 내용 읽기 → ④ Hidden 속성 재설정
이 순서대로 진행하면 C#에서도 숨김 파일을 문제없이 열고, 읽고, 원래 상태로 복원할 수 있습니다.