使用 JGit 时删除本地 Git 存储库
Remove local Git repo when working with JGit
我正在构建一个小工具,向不熟悉 Git 的用户推荐一些 Git 命令。这些命令不是为了修改repo,只是参考了一些资料。
我正在 Java 中创建工具,使用 JGit,这似乎是执行此类操作的最佳选择。
我目前面临的问题是我创建了一个临时文件夹来存放回购内容,但我无法在执行结束时自动删除它。
这是代码(我删除了 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();
我在这个主题上搜索了很多,但到处都说它应该被自动删除...我是不是漏掉了什么?
我会使用像 Apache Commons IO (http://commons.apache.org/proper/commons-io/) 这样的东西,它有一个 FileUtils.deleteDirectory
我正在构建一个小工具,向不熟悉 Git 的用户推荐一些 Git 命令。这些命令不是为了修改repo,只是参考了一些资料。 我正在 Java 中创建工具,使用 JGit,这似乎是执行此类操作的最佳选择。
我目前面临的问题是我创建了一个临时文件夹来存放回购内容,但我无法在执行结束时自动删除它。
这是代码(我删除了 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();
我在这个主题上搜索了很多,但到处都说它应该被自动删除...我是不是漏掉了什么?
我会使用像 Apache Commons IO (http://commons.apache.org/proper/commons-io/) 这样的东西,它有一个 FileUtils.deleteDirectory