Spigot/Bukkit 용 Minecraft 서버 플러그인에서 세계의 데이터 디렉토리를 삭제하려고하는데 세계와 그 청크를 언로드 한 후에도 일부 파일과 디렉토리를 삭제할 수 없습니다. 여기 Bukkit 서버에서 세계의 데이터 디렉토리를 삭제하는 방법은 무엇입니까?
내 코드의 중요한 부분입니다 :Server server = Backup.getPlugin(Backup.class).getServer();
World world = server.getWorld("world");
File active = world.getWorldFolder();
// Unload the world.
server.unloadWorld(world, false);
// Unload the chunks.
Chunk[] chunks = world.getLoadedChunks();
for (Chunk chunk : chunks) {
chunk.unload(false);
}
ServerManager.deleteDirectory(active);
ServerManager.deleteDirectory (파일) 아파치의 FileUtils.deleteQuietly (파일)를 사용하고 다른 기능을 작동하지만, 데이터 디렉토리에 일부 파일을 삭제하는 데 실패 최근 언로드 된 세계는 서버에서 일부 파일을 계속 사용하기 때문에 발생합니다.
내 주요 질문 : 삭제할 수 있도록 세계 데이터 디렉토리가 더 이상 사용되지 않도록하려면 어떻게해야합니까?
멀리 그 세계에서 가능성있는 모든 선수를 순간 이동해야합니다. 또한,'unloadWorld()'와 같이 모든 덩어리를 언로드하는 것이 필요하다고 생각하지 않습니다. – Squiddie
'FileUtils.deleteDirectory (directory)'를 사용해보십시오. 작동하지 않으면 로그를 보여주십시오. 'FileUtils.deleteQuietly'는 예외를 던지지 않으므로 우리는 그 문제가 무엇인지 알지 못합니다. – SocketByte
@Squiddie : 모든 플레이어가 쫓겨나지만 플레이어가 전체 서버에서 온라인 상태가 아니더라도 실패합니다. 또한 아래에 오류 로그를 만들기 전에 청크 언로드를 제거했습니다. – Gentle153