파일 작성 과정에서 정전등으로 인한 사고로 파일 작성 실패 및 손실까지 나는 경우가 발생합니다.
윈도우 NT계열 운영체제의 파일 시스템은 NTFS를 사용하는데 트랜잭션 처리 모델이 적용되었지만
파일 작성 시에는 트랜잭션 처리를 하지 못한다고 합니다.
위의 예제처럼 콘솔로 실행 중일 때 노트북(데스크탑)을 임의로 강제 종료하게 되면 첫 스크린샷처럼 NUL(\0)이 발생됩니다.
MS에서는 이 문제를 지원하기 위해 TxF기술이 나왔지만 현재는 권장하지도 않고 지원도 하지 않는걸로 보입니다.
그래서 원자성을 지키기 위한 파일작성의 일반적인 접근 방법은 문서를 새 파일에 쓰고 원본 파일을 새 파일로 바꾸는 방법이라고 합니다.
중용한 파일을 작성할 때는 위 처럼 백업을 할 수 있는 방안을 마련하도록 해야겠습니다.
※ 참고 사이트
'개발 > C#' 카테고리의 다른 글
VisualStudio와 NSIS를 이용한 설치파일 만들기 (0) | 2020.12.23 |
---|---|
Immutable type: Shallow Copy한 복사개체에서 문자열 변수 값을 변경하였지만 원본개체에서는 변경되지 않은 이유는? (0) | 2018.01.10 |
c#에서 오피스(워드, 엑셀등) 접근 방법 - COM object관련 (0) | 2016.02.26 |
접근 제한자(Access Modifier) (0) | 2015.03.04 |
string.IsNullOrEmpty 와 string.IsNullOrWhiteSpace 비교 (0) | 2014.11.19 |