我正在从 git 命令行输出在项目的 gradle 构建中实现 diff 包生成任务。目前,我有一个方法可以为我提供来自 git diff --name-only 的已更改文件列表。我想做的是在一个新目录中创建一个与每个文件的路径匹配的目录结构。例如:输入字符串 repo/dir/file.java
将在输出目录中创建(如果尚未创建),并在其中创建包含当前目录的 head/repo/dir
目录。 file.java
和 prev/repo/dir
以及之前的 file.java
。
我当前的计划是在正斜杠上分割字符串repo/dir/file.java
,并创建目录直到分割结果的最后一个元素,然后在那里写入文件。但我在 gradle 中想出的任何东西都不是好的或干净的。我想知道是否有更好的方法从这样的字符串创建目录。
最佳答案
My current plan is to split the string
repo/dir/file.java
on the forward slash, and create directories until the last element of the split result
您可以尝试使用File.mkdirs()
,而不是手动拆分字符串。 :
File newDirectoryStructureParent = new File('some/path/to/parent/dir')
def s = 'repo/dir/file.java'
def newContainer = new File(s, newDirectoryStructureParent).getParent()
newContainer.mkdirs()
关于gradle - 从 gradle/groovy 中的路径创建目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356577/