我将文件移动到文件夹。有没有办法不覆盖具有该名称的文件?
例如,folder
包含名为file1.pdf
的文件。如何将另一个名为file1.pdf
的文件移动到该文件夹中,以便将名称更改为例如file1-1.pdf
,file1-2.pdf
以防止原始文件被覆盖。
我使用子字符串来做到这一点,但它的代码非常冗长而且非常糟糕。
答案 0 :(得分:2)
您可以使用以下内容:
def save = { File dir, String name ->
int version = 1
def splitName = name.split(/\./, 0).with { it -> it.length == 1 ? [it[0], ''] : [it[0..-2].join('.'), ".${it[-1]}"] }
def rename = { String prefix, String ext -> "$prefix-$version$ext" }
while (new File(dir, name).exists()) {
name = rename(*splitName)
version++
}
println "Save the file as $name"
}
save(new File('/tmp'), 'file.txt')
假设您已经有文件/tmp/file.txt
和文件/tmp/file-1.txt
,请打印出来:Save the file as file-2.txt