首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从URL获取文件名

从URL获取文件名
EN

Stack Overflow用户
提问于 2009-03-03 09:24:25
回答 21查看 227K关注 0票数 164

在Java语言中,给定一个java.net.URLhttp://www.example.com/some/path/to/a/file.xml形式的String,获得不带扩展名的文件名的最简单方法是什么?因此,在本例中,我要查找返回"file"的内容。

我可以想出几种方法来做到这一点,但我正在寻找一种易于阅读和简短的东西。

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2013-06-18 19:30:55

与其重新发明轮子,不如使用Apache commons-io

代码语言:javascript
复制
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
    }

}
票数 217
EN

Stack Overflow用户

发布于 2009-03-03 09:37:19

代码语言:javascript
复制
String fileName = url.substring( url.lastIndexOf('/')+1, url.length() );

String fileNameWithoutExtn = fileName.substring(0, fileName.lastIndexOf('.'));
票数 200
EN

Stack Overflow用户

发布于 2015-11-23 20:23:37

如果您不需要去掉文件扩展名,这里有一种方法可以做到这一点,而不需要求助于容易出错的字符串操作,也不需要使用外部库。与Java 1.7+配合使用:

代码语言:javascript
复制
import java.net.URI
import java.nio.file.Paths

String url = "http://example.org/file?p=foo&q=bar"
String filename = Paths.get(new URI(url).getPath()).getFileName().toString()
票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/605696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档