Groovy方法删除文件扩展名?

时间:2015-12-16 20:30:07

标签: groovy file-extension

我想知道是否有“Groovy”方法从文件名中删除文件扩展名。

当前的解决方案依赖于apache commons io package:

import org.apache.commons.io.FilenameUtils

String filename = '/tmp/hello-world.txt'
def fileWithoutExt = FilenameUtils.removeExtension(filename)

2 个答案:

答案 0 :(得分:21)

您可以这样做:

filename[0..<filename.lastIndexOf('.')]

删除字符串中最后一个.之后的所有内容。

或稍微漂亮一点:

filename.take(filename.lastIndexOf('.'))

答案 1 :(得分:2)

在这种情况下可能有点矫枉过正,但我​​倾向于将很多公共类视为mixins

String.metaClass.mixin org.apache.commons.io.StringUtils
String.metaClass.mixin org.apache.commons.io.FilenameUtils
etc

然后允许你

String filename = '/tmp/hello-world.txt'
def fileWithoutExt = filename.removeExtension()

我混合哪些取决于脚本的要求,但我倾向于使用这种模式。它使我能够轻松使用我习惯使用的方法,而无需使用所有静态类或导入引用。