0
我正在構建一個小工具來向不熟悉Git的用戶提供一些Git命令。這些命令不打算修改回購,只是查詢一些信息。 我正在用Java創建工具,使用JGit這似乎是做這種東西最好的匹配。使用JGit時刪除本地Git回購
我到目前爲止所面臨的問題是,我創建了一個臨時文件夾來託管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();
,但我得到無處不在,它應該被自動刪除..我錯過了什麼?
您是否嘗試過明確刪除存儲庫文件夾阿帕奇百科全書IO(http://commons.apache.org/proper/commons-io/)? –
是的,但它只適用於這樣的命令: FileUtils.delete(localRepoFolder,FileUtils.RECURSIVE); 這不適用於標準的delete()命令,因爲這是一個文件夾。也許這就是關鍵,deleteOnExit()只是不適用於文件夾? – Xendar
對,'deleteOnExit()'僅適用於文件。 –