从 URL 获取文件名
在Java中,给定 a 或 a 的形式,除了扩展名之外,获取文件名的最简单方法是什么?因此,在此示例中,我正在寻找返回 .java.net.URL
String
http://www.example.com/some/path/to/a/file.xml
"file"
我可以想出几种方法来做到这一点,但我正在寻找一些易于阅读和简短的东西。
在Java中,给定 a 或 a 的形式,除了扩展名之外,获取文件名的最简单方法是什么?因此,在此示例中,我正在寻找返回 .java.net.URL
String
http://www.example.com/some/path/to/a/file.xml
"file"
我可以想出几种方法来做到这一点,但我正在寻找一些易于阅读和简短的东西。
与其重新发明轮子,不如使用Apache commons-io:
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilTest {
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.example.com/some/path/to/a/file.xml?foo=bar#test");
System.out.println(FilenameUtils.getBaseName(url.getPath())); // -> file
System.out.println(FilenameUtils.getExtension(url.getPath())); // -> xml
System.out.println(FilenameUtils.getName(url.getPath())); // -> file.xml
}
}
String fileName = url.substring( url.lastIndexOf('/')+1, url.length() );
String fileNameWithoutExtn = fileName.substring(0, fileName.lastIndexOf('.'));