2009-12-21 1 views
1

임시 저장소를 관리하려면 다시해야합니다. 인쇄와 dms로 가져 오기 사이.응용 프로그램에서 임시 저장소를 올바르게 사용하는 방법

이러한 파일은 응용 프로그램이 종료 될 때 삭제되어야하며 응용 프로그램이 시작될 때 이상적으로 삭제되어야합니다.

Main() 내에서 using() - 문을 사용할 수있는 IDisposable을 구현하는 간단한 클래스를 생각했지만 어떻게 든 더러워졌습니다. 모든 IOException을 포착하는 catch 블록 안에 Directory.Delete(path, true);을 사용하면 과거에는 안정적으로 작동하지 않았습니다.

이러한 기능을 스마트하게 구현하는 방법에 대한 의견이 있으십니까? 어떤 추천?

실제 경로는 우리와 관련이 없지만 %AppData%\[Programname]\Temp을 사용합니다.

Windows에서 종료시 삭제되는 정말로 임시 파일을 만들 수 있습니까?

시간 동안.

+0

응용 프로그램 시작시에도 삭제하려고한다면 응용 프로그램 종료 중에 Directory.Delete (path, true)가 실패하면 큰 문제가되지 않을 수 있습니다. – Tarydon

+0

물론입니다. 다음에 다시 시작할 때까지 파일이 지속되지 않아야합니다. 응용 프로그램 종료시 실패하면 시작시 다시 실패 할 가능성이 높습니다. 그 동안 컴퓨터가 재부팅되지는 않았지만 다음 재부팅시까지 시스템에 남아 있습니다. –

답변

0

IDisposable 접근 방식을 사용하는 데 문제가 없습니다. 또 다른 방법은 코드의 종료 영역에서 try를 사용하여 finally 블록을 차단하고 finally 블록에 정리 코드를 삽입하여 실행되도록하는 것입니다. 유일한 문제는 멀티 스레드 응용 프로그램을 사용하는 경우 AppDomainUnhandledException 이벤트 처리기를 설정하려는 경우입니다.

+0

더러운 코드에 대한 느낌은 Directory.Delete (path, true); 어쨌든 일하기를 희망하고 ... –

0

예고. Windows에는 임시 파일을위한 특수 폴더가 있습니다 (사용자 프로필에 하나, \ WINDOWS \ Temp에 하나).

어떤 이유로 프로그램이 임시 파일을 제거하지 않으면 사용자가 Windows 디스크 정리 도구로이 작업을 수행 할 수 있습니다.

창에는 * nix와 같은 자체 정리 된 임시 직원이없는 것 같습니다. 그러나 http://www.tek-tips.com/viewthread.cfm?qid=1314337&page=1을 발견했습니다. 사람들은 LogOff에서 실행될 사용자 정의 스크립트를 작성하라고 제안합니다. 희망이 도움이됩니다.