2008-10-28 8 views
16

응용 프로그램에서 사용하는 모든 임시 파일을 정리하려면 해당 임시 파일이 모두 내 제어하에있는 것이 아니므로 "잔인하게"그들을 프로그램 적으로 삭제하기 위해 잠금을 해제하십시오..NET에서 프로세스에 의해 잠긴 파일의 잠금을 해제하려면 어떻게해야합니까?

+0

응용 프로그램과 사용중인 파일에 대해 잘 모르겠지만 FileStream을 사용하여 파일을 조작하는 경우 FileStream을 닫고 FileStream 객체를 삭제해야합니다. 그러면 사용 된 파일이 삭제됩니다. 잠금 해제. – milot

답변

4

this 기사를 참조하십시오. C#에서 기본적으로 interop을 사용하여이 작업을 수행하는 데 어려움을 겪을 것이라고 생각하지만 C++/CLI 래퍼 어셈블리를 작성하는 것은 좋은 방법 일 수 있습니다. 또한 사용자가이 작업을 수행하려면 SE_DEBUG 권한이 있어야합니다.

+0

해당 아티클의 ForceDel.zip 파일 (이 대답의 해결책)은 더 이상 제공되지 않으며 ... 필요합니다. : – kzfabi

+0

찾을 수 있습니다! [여기] 다운로드 (http://www.technipages.com/wp-content/uploads/2007/11/forcedel.zip) – kzfabi

+0

[다른 출처] (http : // www. findthatzipfile.com/search-17553588-hZIP/winrar-winzip-download-forcedel.zip.htm) – kzfabi

2

확실히 애플리케이션의 소유주가 소유 한 임시 파일을 정리하고 싶다면이 파일을 잠금 해제하고 삭제할 수있는 모든 권한을 갖습니다.

응용 프로그램에서 소유하든 그렇지 않든 모든 TEMP 파일을 삭제하려면 매우 조심해야합니다. 원래 응용 프로그램은 아마도 파일을 사용하려고하기 때문에 자물쇠를 적용했습니다!

진정으로 필요한 경우 C#에서 어려울 기존 도구의 기능을 복제하는 대신 항상 명령 줄 응용 프로그램을 생성 할 수 있습니다.

+0

파일은 내 응용 프로그램의 일부이지만 모듈의 일부가 아니며 정치적 이유 때문에 해당 모듈을 수정할 수 없습니다 (실제로 세부 정보를 얻고 싶지는 않았습니다 :-)), 어쨌든 잔인하게도 안전합니다. 해당 파일을 삭제하십시오. –

3

저는 이것도 잘 처리하지 못했고 Unlocker의 명령 줄 구현으로 포격되었습니다. 제 경우에는 매일 여러 번 실행해야하며 문제없이 하루에도 수천 개의 파일을 열 수 있습니다.

0

MSDN 포럼에서 thread을 확인하십시오. 당신이 원하는 것을하기에 충분한 정보가 있지만 추천하지는 않습니다.

관련 문제