【发布时间】:2012-11-09 07:12:21
【问题描述】:
使用的环境是 Google App Engine。 zip 文件已上传到 BlobStore。
我有以下代码:
ZipInputStream zis = ...
ZipEntry ze = zis.getNextEntry();
while( ze != null){
System.out.println(ze.getName());
ze = zis.getNextEntry();
}
如何确定 zip 存档中每个文件的内容类型? ze.getName 方法显示文件名。文件类型如何?
谢谢
【问题讨论】:
-
你可以使用标准的hackish方法从文件名中提取扩展名(lastIndexOf("."))
-
嗯,OP 是否不需要其他信息,例如没有扩展名,或者有人弄乱了他们的文件并将“txt”命名为“pdf”?我想只处理 -1 并且名称类似于“SillyFileExtension。”。只需执行与普通文件相同的操作 - 正则表达式?
-
@JRGalia:完全有可能欺骗扩展名,甚至是文件签名,除非该工具非常彻底(不过我怀疑是否存在)。问题是您希望内容类型检测有多接近:基于扩展名或文件签名(内容类型的检测最多取决于我所看到的文件签名)。