我想在java中编写一些代码以查明给定的url是文件还是目录。我怎样才能做到这一点??如何找出url http://www.test.com/abc.pdf是一个文件还是一个目录?
2
A
回答
8
URL本身并不具备“文件”或“目录”的概念。 URL的内容由服务器在请求时响应的任何内容定义。如果您获得MIME类型为application/pdf
的内容,则该URL代表一个PDF文件。如果你有其他的东西,那么它不是一个PDF文件。
2
在任何URL/URI规范,HTTP规范或MIME类型注册表中,根本没有“目录”的概念。
因此,网络服务器有没有办法告诉客户端一个URL解析为一个目录,即使它知道这意味着什么。 (在很多情况下,Web服务器不知道/关心目录本身,如典型的RESTful网络API无法识别的概念。)
的选项有:
尝试获取事情,看看你得到什么样的内容类型。但请记住,Web服务器可能会将任何“目录”呈现为任何内容......因此,通常不可能通过这种方式可靠地将目录与非目录区分开来。
如果您想避免下载文件,您可以发送HEAD请求而不是GET请求。这需要使用完全成熟的HTTP客户端库而不是
URLConnection
。更改您的应用程序设计和实现,以便不需要“目录”概念。
更改您的应用程序,使其它纯粹基于URL决定什么是“目录”和什么是“文件”。 (在一般情况下,这是行不通的...因为URL名称部分没有普遍遵守的惯例可以让您作出区分。)
更改为使用URL方案/协议“目录”是一个明确定义的概念。例如“file:”或“ftp:”。
0
你从URL中取回的东西本质上不是“文件”或“目录”。充其量,它是一种内容类型的数据流。它通常成为客户端的“文件”,可以通过将其保存到文件系统或临时存储以仅显示。基本上,Web服务器无法告诉客户端某些东西是使用HTTP的目录。
您要么必须创建一些客户端业务逻辑来推断“目录”(可能基于URL,可能缺少文件扩展名?)或使用其他协议。
相关问题
- 1. 给定一个目录,我如何找出一个类是
- 2. 如何识别一个项目是使用Net :: SFTP的文件还是目录?
- 3. 如何确定一个对象是一个文件还是一个文件夹
- 4. 检查一个文件是Python 2.7.11中的一个目录还是一个常规文件
- 5. 如何找出一个链接是由JavaScript处理还是使用href url
- 6. 如何找出如果一个目录是一个有效的PostgreSQL集群
- 7. 确定路径是文件还是只是一个目录 - 当文件还不存在
- 8. File.Copy目标文件是一个目录,而不是文件。
- 9. 如何找出PHP_URL_PATH的最后部分是文件还是目录?
- 10. 查找一个目录,是不是在另一个迪尔斯
- 11. 如何找出如果一个项目是不是在一个阵列
- 12. 检查一个目录是否为(文件系统)根目录
- 13. 如何检查目录是文件还是文件夹?
- 14. 文件是一个目录而不是文件
- 15. FileChooser来选择一个目录,而不是一个文件
- 16. 一个MVC项目还是两个?
- 17. AUTH_PROFILE_MODULE值当模特不是一个文件,而是一个目录
- 18. GNU做:检查文件是否是一个目录
- 19. 如何检测ftp文件名是一个目录?
- 20. 找出一个人是如何感觉?
- 21. java.io.IOException:是一个目录Android
- 22. 如何知道DirectoryEntry是一个用户还是一个组?
- 23. 如何找出哪个JS文件是重新路由URL?
- 24. 检查一个文件是否存在于一个给定的目录中,而不是子目录
- 25. Common Lisp确定是一个目录是一个子目录或另一个目录
- 26. 将文件从一个目录复制到另一个目录
- 27. 将文件从一个目录复制到另一个目录
- 28. 找出一个目录是否存在于php
- 29. 如何找到一个给定的目录中的特定文件,并检查它是否是一个文件或其他目录
- 30. 将文件从一个目录移动到另一个目录
Apache以text/html格式提供静态目录,所以也没有帮助。 – 2011-03-24 00:56:55
所以我必须做一个httprequest,得到一个响应,并寻找响应头中的MIME类型?如果即时通讯使用pdf格式,它和下载文件一样吗? – 2011-03-24 01:13:45
@Yannick Wald:是的,你必须问服务器。但是,您可以执行HEAD请求以仅检索HTTP标头,而不下载整个文件(下载文件将是GET请求)。 – 2011-03-24 01:23:32