diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index 831820e..e836446 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -237,10 +237,11 @@ LockUtil.lock(s"${repository.userName}/${repository.repositoryName}") { deleteRepositoryOnModel(repository.userName, repository.repositoryName) - FileUtils.deleteDirectory(getRepositoryDir(repository.userName, repository.repositoryName)) - FileUtils.deleteDirectory(getWikiRepositoryDir(repository.userName, repository.repositoryName)) - FileUtils.deleteDirectory(getTemporaryDir(repository.userName, repository.repositoryName)) - FileUtils.deleteDirectory(getRepositoryFilesDir(repository.userName, repository.repositoryName)) + FileUtil.deleteRecursively(getRepositoryDir(repository.userName, repository.repositoryName)) + + FileUtil.deleteRecursively(getWikiRepositoryDir(repository.userName, repository.repositoryName)) + FileUtil.deleteRecursively(getTemporaryDir(repository.userName, repository.repositoryName)) + FileUtil.deleteRecursively(getRepositoryFilesDir(repository.userName, repository.repositoryName)) // Call hooks PluginRegistry().getRepositoryHooks.foreach(_.deleted(repository.userName, repository.repositoryName)) diff --git a/src/main/scala/gitbucket/core/util/FileUtil.scala b/src/main/scala/gitbucket/core/util/FileUtil.scala index 1a30ace..1f266ab 100644 --- a/src/main/scala/gitbucket/core/util/FileUtil.scala +++ b/src/main/scala/gitbucket/core/util/FileUtil.scala @@ -92,4 +92,14 @@ name } + /** + * Delete given folder recursively. + */ + def deleteRecursively(f: File): Boolean = { + if (f.isDirectory) f.listFiles match { + case files: Array[File] => files.foreach(deleteRecursively) + case null => + } + f.delete() + } }