Gitに慣れていないユーザにいくつかのGitコマンドを提案する小さなツールをビルドしています。コマンドはレポを変更するためのものではなく、いくつかの情報を参照するだけです。 私はJGitを使ってJavaでツールを作成していますが、これはこの種の処理に最適です。JGitで作業するときにローカルGitリポジトリを削除する
私が今まで直面した問題は、リポジトリコンテンツをホストするための一時フォルダを作成することですが、実行終了時に自動的に削除することはできません。ここで
は(私は読書を簡素化するための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.delete(localRepoFolder、FileUtils.RECURSIVE); これはフォルダであるため、標準のdelete()コマンドでは機能しません。多分それはポイントです、deleteOnExit()は単にフォルダでは動作しませんか? – Xendar
'deleteOnExit()'はファイルに対してのみ機能します。 –