使用JGit时删除本地Git仓库

时间:2016-07-06 14:05:51

标签: jgit

我正在构建一个小工具,向不熟悉Git的用户提出一些Git命令。这些命令不是为了修改repo,只是查阅一些信息。 我正在使用JGit创建Java工具,这似乎是做这种事情的最佳匹配。

我目前面临的问题是我创建了一个临时文件夹来托管repo内容,但我无法在执行结束时自动将其删除。

这是代码(我删除了try / catch内容以简化阅读):

// Create temporary folder
Path folderPath = Paths.get(System.getProperty("user.dir"));
File localRepoFolder = Files.createTempDirectory(folderPath, "local-repo").toFile();
// Clone the repo
CloneCommand clone = new CloneCommand();
clone.setURI("https://myrepo");
clone.setNoCheckout(true);
clone.setDirectory(localRepoFolder);
clone.setCredentialsProvider(new UsernamePasswordCredentialsProvider("user", "password"));
Git gitRepo = clone.call();
// Do some stuff
[...]
// Cleanup before closing
gitRepo.getRepository().close();
gitRepo.close();
localRepoFolder.deleteOnExit();

我在这个主题上搜索了很多,但我到处都会自动删除它...我错过了什么?

1 个答案:

答案 0 :(得分:0)

我会使用像Apache Commons IO(http://commons.apache.org/proper/commons-io/)这样的FileUtils.deleteDirectory