groovy有没有一个简单的方法来获得没有扩展名的文件名?
2022-08-31 19:46:07
假设我有这样的东西:
new File("test").eachFile() { file->
println file.getName()
}
这将打印目录中每个文件的完整文件名。有没有一种时髦的方法来获取没有任何扩展名的文件名?(或者我又回到了正则表达式的土地上?test
假设我有这样的东西:
new File("test").eachFile() { file->
println file.getName()
}
这将打印目录中每个文件的完整文件名。有没有一种时髦的方法来获取没有任何扩展名的文件名?(或者我又回到了正则表达式的土地上?test
我相信最时髦的方式是:
file.name.lastIndexOf('.').with {it != -1 ? file.name[0..<it] : file.name}
或者使用简单的正则表达式:
file.name.replaceFirst(~/\.[^\.]+$/, '')
还有一个apache commons-io java lib用于这种目的,如果你使用maven,你可以很容易地依赖它:
org.apache.commons.io.FilenameUtils.getBaseName(file.name)
最干净的方式。
String fileWithoutExt = file.name.take(file.name.lastIndexOf('.'))