无法使用 Java 从远程存储库中删除克隆本地文件夹
Not Able to delete a clone local folder from remote repository using Java
我无法删除克隆了远程 github 存储库的文件夹。
我的代码如下。
public class JGitDemo {
public static void main(String[] arg) {
try {
String localFolder="F:/demojavarepo";
Git.cloneRepository().setURI("https://github.com/skeeto/sample-java-project")
.setDirectory(new File(localFolder)).setBranch("master").call();
// Some Processing on the cloned directory
FileUtils.forceDelete(new File(localFolder));
//FileUtils.deleteDirectory(new File(localFolder));
//FileUtils.deleteQuietly(new File(localFolder));
//FileUtils.forceDeleteOnExit(new File(localFolder));
} catch (GitAPIException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
基本上,在克隆 repo 之后,我对其进行了一些处理,最后我想删除本地文件夹。
但是,当我尝试删除文件夹时出现以下错误。
java.io.IOException: Unable to delete file: F:\demojavarepo\.git\objects\pack\pack-b7dc7f9db205afdbdfbb7608f098c2ee38fb4875.pack
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2400)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at repoclient.JGitDemo.main(JGitDemo.java:22)
我正在使用 Apache Commons IO FileUtils Class forceDelete 方法。我
事件在 FileUtils Class 上尝试了其他方法,但无法删除文件夹。
我正在使用 JGit api 使用 java 在文件夹中克隆存储库。
我是否应该断开连接或以某种方式取消本地 git 文件夹与远程 git 的关联,以便成功删除。
谁能帮我解决这个问题。
您需要关闭 Git 存储库。正如您的代码所代表的那样,您正在丢弃参考。我建议使用临时目录克隆到其中,这样您就不必删除它,OS 会。在 Files.
中查看各种 createTempDirectory
方法
Git git = Git.cloneRepository...
try {
// whatever
} finally {
if (git != null) git.close();
}
如果您必须自己删除目录,请在 git.close()
之后执行。有关如何在 JVM 退出时执行此操作,请参阅 this 线程。
我无法删除克隆了远程 github 存储库的文件夹。
我的代码如下。
public class JGitDemo {
public static void main(String[] arg) {
try {
String localFolder="F:/demojavarepo";
Git.cloneRepository().setURI("https://github.com/skeeto/sample-java-project")
.setDirectory(new File(localFolder)).setBranch("master").call();
// Some Processing on the cloned directory
FileUtils.forceDelete(new File(localFolder));
//FileUtils.deleteDirectory(new File(localFolder));
//FileUtils.deleteQuietly(new File(localFolder));
//FileUtils.forceDeleteOnExit(new File(localFolder));
} catch (GitAPIException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
基本上,在克隆 repo 之后,我对其进行了一些处理,最后我想删除本地文件夹。
但是,当我尝试删除文件夹时出现以下错误。
java.io.IOException: Unable to delete file: F:\demojavarepo\.git\objects\pack\pack-b7dc7f9db205afdbdfbb7608f098c2ee38fb4875.pack
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2400)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1617)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2391)
at repoclient.JGitDemo.main(JGitDemo.java:22)
我正在使用 Apache Commons IO FileUtils Class forceDelete 方法。我 事件在 FileUtils Class 上尝试了其他方法,但无法删除文件夹。
我正在使用 JGit api 使用 java 在文件夹中克隆存储库。
我是否应该断开连接或以某种方式取消本地 git 文件夹与远程 git 的关联,以便成功删除。
谁能帮我解决这个问题。
您需要关闭 Git 存储库。正如您的代码所代表的那样,您正在丢弃参考。我建议使用临时目录克隆到其中,这样您就不必删除它,OS 会。在 Files.
中查看各种createTempDirectory
方法
Git git = Git.cloneRepository...
try {
// whatever
} finally {
if (git != null) git.close();
}
如果您必须自己删除目录,请在 git.close()
之后执行。有关如何在 JVM 退出时执行此操作,请参阅 this 线程。