ファイルの拡張子を取り除く
ファイル名の拡張子を変えてコピーしたりする際に、ファイル名から
拡張子を取り除く作業が発生します。
そのようなときに使える便利なメソッドです。
なお、このサンプルでは、拡張子がないファイル名の場合、および
ドットで始まるファイル名(UNIX/Linuxでは、隠しファイルとして
扱われます)については、何も処理をせずにそのままの
ファイル名を返しています。
samples/file/RemoveFileExtension.java - Eclipse SDK
|
package samples.file;
import java.io.File;
public class RemoveFileExtension {
public static String removeFileExtension(String filename) {
int lastDotPos = filename.lastIndexOf('.');
if (lastDotPos == -1) {
return filename;
} else if (lastDotPos == 0) {
return filename;
} else {
return filename.substring(0, lastDotPos);
}
}
public static void main(String[] args) {
// 拡張子を含む場合は、拡張子を取り除きます。
System.out.println(removeFileExtension("test.txt"));
// 拡張子を含まない場合は、そのままです。
System.out.println(removeFileExtension("hosts"));
// ドットで始まるファイル名の場合は、そのままです。
System.out.println(removeFileExtension(".bashrc"));
// ファイルオブジェクトから拡張子を除く方法です。
File file = new File("/JavaMaster/bin/samples/file/RemoveFileExtension.class");
String filename = file.getName();
System.out.println(removeFileExtension(filename));
}
}
|
|
コマンド プロンプト
|
C:\JavaMaster\bin>java -cp . samples.file.RemoveFileExtension
test
hosts
.bashrc
RemoveFileExtension
|
なお、ファイルオブジェクト(File)のオブジェクトについて変換を
行いたいときは、上記のように、いったんgetNameメソッドで
ディレクトリ名を除くファイル名部分を取得し、このメソッドに
そのファイル名を渡せばよいでしょう。
|