내 프로그램을 실행하는 동안 데이터를 저장하려면 임시 폴더가 필요합니다. 이 데이터는 프로그램 종료 후 필요하지 않으므로 삭제해야합니다. 실행중인 각 프로그램 인스턴스마다 하나의 폴더가 필요합니다.시작시 임시 파일 삭제
file.deleteOnExit()
을 사용하는 경우 어떤 종류의 충돌에서도 파일이 삭제되지 않습니다. 따라서 내 생각은 시작시에 삭제되지 않은 이전 임시 파일을 확인하고 제거하는 것입니다. 그러나 프로그램의 다른 인스턴스를 시작할 때 아직 실행중인 프로그램의 임시 파일을 삭제해서는 안됩니다. 이것을 어떻게 할 수 있습니까?
자세한 내용 : 임시 파일은 시스템의 임시 디렉터리에 있어야하며 프로그램이 정상적으로 종료되면 삭제해야합니다. 이 질문은 프로그램이 충돌 한 몇 시간 동안 만 발생합니다. 이 프로그램은 OS 독립적이어야합니다. File
클래스 대신 Path
클래스를 사용하는 것이 좋습니다.
코드가 설계된 방식으로 인해 제안 된 것처럼 다른 프로세스에서 여러 인스턴스를 실행할 수 없습니다 (권장 사항이지만). – piegames
@piegames 이미 논의한 것처럼 종료시 임시 파일을 삭제할 수있는 확실한 방법이 없기 때문에 시작할 때 삭제해야합니다. 여러 인스턴스를 갖는 것은 내가 아는 한이 작업을 거의 불가능하게 만듭니다. – Tony
프로그램은 임시 디렉토리에있는 파일에 시간 소인을 넣고 백그라운드 스레드에서 매분마다이를 업데이트 할 수 있습니다.타임 스탬프가 ~ 5 분보다 오래된 경우 폴더가 새 인스턴스에 의해 삭제 될 수 있습니다. – piegames