如何检查文件版本是.gz
还是.bzip2
。我在File Java文档中搜索但无法找到任何方法。你能告诉我吗?
我的要求是在UI上显示文件,如果.txt不存在,则检查.gz是否存在,如果不存在,则检查.bzip2文件是否存在,因此我想查看扩展名文件。我假设我需要查看文件类型。
答案 0 :(得分:6)
您可以使用 Files 的Guava实用程序,并使用Files.getFileExtension(String String fullName)
的方法
System.out.println(Files.getFileExtension("C:\\fileName.txt"));
输出结果为:
txt
源代码非常简单,
public static String getFileExtension(String fullName) {
checkNotNull(fullName);
String fileName = new File(fullName).getName();
int dotIndex = fileName.lastIndexOf('.');
return (dotIndex == -1) ? "" : fileName.substring(dotIndex + 1);
}
答案 1 :(得分:3)
您可以使用:
答案 2 :(得分:1)
Java 7提供了返回
的FileTypeDetector#probeContentType(Path)
[...]多用途Internet邮件的字符串形式 RFC 2045:多用途定义的扩展(MIME)内容类型 Internet邮件扩展(MIME)第一部分:Internet邮件的格式 身体。该字符串必须根据语法中的语法进行解析 RFC 2045。
如果失败了,你就没有多少选择。您可以检查扩展名(不安全,因为文件可以有任何名称)或尝试将其解析为gz或bzip2内容,以及哪个成功是正确的。
答案 3 :(得分:1)
以编程方式确定文件类型可能会非常棘手,并且已经提出并实施了许多基于内容的文件识别方法。 Java中有几种可用于检测文件类型的实现,其中大多数实现主要或完全基于文件'扩展
这是LINK
答案 4 :(得分:0)
尝试这样的事情
String extension = "";
int i = fileName.lastIndexOf('.');
if (i >= 0) { extension = fileName.substring(i+1); }
会产生不包括"的扩展名。"所以Notepad.txt这个语法会产生txt ---或者word.docx这个语法会产生docx