2012-05-15 215 views
0

我如何确定我想下载的文件的扩展名?我正在使用下面的代码来下载文件。文件扩展名为

URL url = new URL("http://server.com/file.format"); 
DefaultHttpClient client = new DefaultHttpClient(); 
HttpGet get = new HttpGet(new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null)); 

InputStream in = client.execute(get).getEntity().getContent(); 

//... read input stream and save to file 

我看了其他相关的线程,但我找不到解决方案给我的问题。

+0

这取决于你到底在做什么。你可以从URL中获取它,从Content-Type头部猜测它,或者从文件内容中猜测它。 –

+1

在某些情况下,URL中不存在文件扩展名!猜测不是返回文件扩展名,它只返回MIME类型! –

回答

1

如果我理解正确,你的例子中的扩展名是“格式”。换句话说,它在用于使URL用于请求文件的字符串中。

str.substring(str.lastIndexOf('.')+1) 

[编辑]

+0

当然,但我想要使用例如MIME类型(内容类型的文件)的扩展文件类型。 –

+0

请注意,使用这种方法,我们应该使用'str.substring(str.lastIndexOf('。')+ 1);' –

2

在互联网上,并在Unix世界中,没有这样的事,作为一个强制性的文件:从在用于制造URL使用文件字符串传递得到扩展延期。这是一种典型的Windows世界思维方式。

在HTTP中,最接近“文件扩展名”的是MIME类型。它是一个实际的内容类型描述,例如text/htmlimage/gif。但HTTP不提供文件扩展名。您必须将mime类型自己映射到文件扩展名!