시스템(예: WinXP)에서는 "잠긴" 파일을 어떻게 처리합니까?

시스템(예: WinXP)에서는 "잠긴" 파일을 어떻게 처리합니까?

잠긴 파일은 OS에서 정확히 어떻게 처리됩니까?

또는 정확하게 말하면 Windows 탐색기에서 잠긴 파일을 삭제할 수 없는 경우가 있는데 해당 디렉터리에서 명령 프롬프트를 열면 해당 파일을 삭제할 수 있는 이유는 무엇입니까?

답변1

프로세스가 파일이나 디렉터리에 대한 핸들을 열 때 원하는 공유 수준을 지정합니다. 공유 수준은 FILE_SHARE_DELETE, FILE_SHARE_READ 및 FILE_SHARE_WRITE 플래그의 조합일 수 있습니다. 깃발의 이름은 매우 분명합니다. FILE_SHARE_READ를 지정하면 다른 프로세스가 파일을 읽을 수 있고, FILE_SHARE_WRITE는 다른 프로세스가 파일을 쓸 수 있도록 허용하고(아마도 내 발 아래에서 파일을 변경할 수 있음) FILE_SHARE_DELETE는 다른 프로세스가 파일을 삭제할 수 있도록 허용합니다. 파일 핸들을 닫은 후).

어쨌든 어떤 프로세스가 파일에 대한 핸들을 열고~ 아니다FILE_SHARE_DELETE를 지정하면 첫 번째 프로세스가 핸들을 닫을 때까지 다른 프로세스가 파일을 삭제할 수 없음을 의미합니다. 이것이 "파일이 다른 프로세스에 의해 잠겨 있습니다" 오류가 발생하는 일반적인 이유입니다. 프로세스는 디렉터리에 대한 핸들도 열 수 있으므로 이는 디렉터리가 비어 있더라도 디렉터리 삭제에도 적용됩니다.

탐색기에서는 파일을 삭제할 수 없는데 명령 프롬프트에서는 파일을 삭제할 수 있는 이유에 대해 왜 이런 일이 발생하는지 이해할 수 없습니다. 직접 눈으로 확인해봐야 겠습니다.

JR

답변2

John의 말이 맞습니다... 사용 중인 파일은 삭제할 수 없습니다. 왜냐하면... 사용 중이기 때문입니다. 출근하는 동안 타이어를 교체할 수 없는 것도 같은 이유입니다. 온갖 예상치 못한 일들이 일어날 것입니다.

어떤 프로세스가 파일을 사용하고 있는지 알고 싶다면(프로세스를 일시적으로 종료하여 파일 잠금을 해제할 수 있음)프로세스 탐색기Microsoft/Sysinternals에서.

  • 찾기 메뉴를 클릭하고 핸들 또는 DLL 찾기...를 선택합니다.
  • 일부 프로세스에 의해 잠겨 삭제할 수 없는 파일 이름을 입력하세요.
  • 검색어를 입력한 후 검색 버튼을 클릭하세요.

Windows에서 파일을 사용 중인 경우 다음을 사용할 수 있습니다.MoveOnBootGibin Software에서 재부팅 후 잠긴 파일을 삭제합니다.

답변3

탐색기에 파일을 잠시 열어 파일을 스캔하는 타사 확장 프로그램이 있어서 탐색기에서 파일을 잠그는 것 같습니다. 이 문제는 더 큰 파일에만 발생합니까? 잠금은 Windows 세계의 잠금이며, 어떤 명령 프롬프트도 잠긴 파일을 삭제할 수 없습니다(위에서 언급한 것처럼 잠금을 닫은 다음 파일을 삭제하는 방법이 있지만).

관련 정보