위즈군의 라이프로그
Reboot... Search /

MS Windows 의 설계상 오류? 버그?

2004.01.02 12:59
IE에서 파일저장 기능을 이용해서 웹 페이지를 저장하면 HTML 코드가 들어간 "pagename.htm" 파일과 관련파일이 들어가는 "pagename_files" 라는 폴더가 아래그림과 같이 만들어집니다.
윈도우즈가 가진 설계상 오류

윈도우에서 이 항목을 관리 할 때 htm파일과 폴더를 연동해서 인식 합니다. 폴더를 파일에 붙어있는 항목으로 판단하는 것입니다. 그래서 htm 파일을 삭제 하는 경우 폴더까지 삭제가 됩니다.

이게 무슨 문제가 있을까요?

위즈군은 밤새워 프레젠테이션 자료 편집을 막 마무리 했습니다.
여유롭게 커피를 한잔 마시고, 메일로 발송 할 생각으로 바탕화면에 a_files 라는 폴더를 만들어 원본 파일을 저장하고, 커피를 타러 잠시 자리를 비웠습니다.

커피를 타고 자리에 돌아오니 메신저가 반짝여서 열어보니, 소스에서 오류가 난다는 내용입니다. 사이트를 살펴보니 간단한 스크립트 오류라 바탕화면에 a.htm 파일 만들어 간단하게 작업을 완료 해버립니다. 사이트 테스트를 끝낸 후 a.htm 파일을 삭제하고, 깔끔하게 휴지통까지 비우고 기쁜 마음으로 커피를 마셨습니다.

메일을 보내기 위해 프레젠테이션 파일을 압축하려고 하는데.. 파일을 찾을 수가 없는 것입니다. 바탕화면에 a_files 폴더가 없는 것입니다.

위즈군은 누군가의 음모라고 생각하면서, 다시 프레젠테이션 자료를 만들기 시작합니다.

위즈군의 예 에서 보면 a.htm과 a_files 폴더의 내용은 관련이 없습니다. a.htm이 필요 없어서 a.htm을 삭제하면 a_files 폴더의 내용은 어떻게 될까요? 물론 같이 삭제가 됩니다.

Microsoft는 이 문제점에 대해 "operation on an html file or folder apply to similarly named folder or html file"에서 소개하고 있습니다.

Microsoft의 문서를 보면,
만약 폴더에 특정한 부록(appendix)를 가지고 있고 비슷한 이름을 가진 .htm, .html이 폴더와 같은 레벨이 존재한다면, 파일을 지울 때 os는 폴더까지 함께 지운다. 영문판 버전에서 부록은 _files, _file, .files, filer, _fails 등이 있다.

이 문제를 해결하기 위해서는 레지스트리 편집기를 이용해 레지스트리를 아래와 같이 편집 하면 됩니다.
hkey_current_user\software\microsoft\windows\current-version\explorer
의 nofilefolderconnection 엔트리 의 값을 reg_dword 1 로 바꾸거나 추가
MS 에서 사용자의 편의를 위해 만든 기능이 치명적인 버그처럼 작용할 수도 있다는 내용이었습니다.
신고
Name : Password : Blog : ( )

위즈군의 라이프로그

Category

전체 (569)
개발 (0)
정보 (0)
일상 (0)
정리중 (569)
Total:2,069,216
Today:217 / Yesterday:171
Daum 코드
Powered by Tistory / Skin by 위즈 / Copyright Click Here 라이센스정책 rss 2.0