2015-12-16 21 views
8

ファイル拡張子をファイル名から削除する "Groovy"の方法があるのでしょうか?Groovyの方法でファイル拡張子を削除できますか?

現在のソリューションは、パッケージIO Apacheのコモンズに依存しています:

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

は、文字列の最後の.後のすべてを削除するには:

import org.apache.commons.io.FilenameUtils 

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

commons.jar全体を取り除きたい場合を除きます - (バトル強化された)ライブラリ関数を使用すると何が問題になりますか? – cfrick

答えて

14

あなたはこのような何かを行うことができます。

またはわずかにきれい:

filename.take(filename.lastIndexOf('.')) 
+1

与えられた例では好きな部分文字列を使うことができますが、一般的には拡張子が全くないかもしれませんし、場合によってはディレクトリに "。"、例えばlinuxの隠しディレクトリがあります。 –

2

は、この場合にはやり過ぎかもしれないが、私はあなたが

することができます。この後、ミックスイン

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() 

私がミックスインするものはスクリプトの要件に依存しますが、私はこのパターンを多く使う傾向があります。静的なクラスやインポート参照がなくても、使い慣れたメソッドを簡単に使用することができます。

関連する問題