2010-07-01 2 views
3

내 프로그램은 임시 PDF 파일 (Path.GetTempFileName 사용)을 작성한 다음 기본 PDF 처리기 (일반적으로 Adobe Reader)로 전달하여 표시합니다. 내 finally 블록 내 주 방법은 임시 파일을 삭제할 수 있지만 내 프로그램을 닫을 때 여전히 Adobe Reader가 열려 있으면 파일은 열려 있고 삭제할 수 없습니다.다른 프로그램에서 열려있는 임시 파일을 삭제하려면 어떻게해야합니까?

한 가지 해결책은 사용자를 임시 폴더로 언젠가 지우는 것으로 가정합니다. 파일은 각각 1.5MB입니다. 그러나 더 좋은 방법이 있습니까?

나는 설치 프로그램과 Windows Update와 비슷한 다음 재부팅시 삭제할 파일을 등록하는 방법에 대해 한 번 읽었지만 지금은 정보를 찾을 수 없다고 생각했습니다. 내가 여기서 사용할 수있는 기능이 있습니까?

+0

파일을 pdf 리더의 stdin으로 스트리밍 할 수 있습니까? –

답변

2

KB 문서 How To Move Files That Are Currently in Use을 참조하십시오. 거기서 개괄 한 바와 같이 NT (2000, XP, Vista 및 Windows 7 포함) 및 레거시 OS 버전에서 다른 방법을 사용해야합니다.

Pinvoke.net에는 관련된 Win32 API 호출 및 상수에 대한 관리되는 정의가 있습니다.

0

열어 본 파일을 등록하거나 저장하고 다음에 응용 프로그램을 시작할 때 임시 PDF 파일을 삭제하려고 시도 할 수 있습니까? 그래서 다음 번에 깔끔하게 처리 할 수 ​​있도록 앱을 만드십시오. 사용자 은 그때까지으로 마감해야합니다.

관련 문제