Solve repository deletion error on Windows (#2711)

- Added function to delete given folder recursively.
- Used the function for deleting the folder, while deleting repository.

fixes #2628
This commit is contained in:
Shreejan Shrestha
2021-03-23 09:06:38 +09:00
committed by GitHub
parent 142be65893
commit f538950d64
2 changed files with 15 additions and 4 deletions

View File

@@ -237,10 +237,11 @@ trait RepositoryService {
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))

View File

@@ -92,4 +92,14 @@ object FileUtil {
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()
}
}