如何检查属性文件的文件类型

时间:2015-06-17 14:06:08

标签: java

我所拥有的程序正在检查大多数文件类型,如果我使用程序运行时有一个.properties文件,它会显示text / plain而不是属性文件。如何自定义程序以显示属性文件的mime类型(基于扩展名和内容):

以下代码:

public class TikaFileTypeDetector {

    private final Tika tika = new Tika();

    public TikaFileTypeDetector() {
        super();
    }

    public String probeContentType(Path path) throws IOException {
        // Check contents first
        String fileContentDetect = tika.detect(path.toFile());
        if (!fileContentDetect.equals(MimeTypes.OCTET_STREAM)) {
            return fileContentDetect;
        }

        // Try file name only if content search was not successful
        String fileNameDetect = tika.detect(path.toString());
        if (!fileNameDetect.equals(MimeTypes.OCTET_STREAM)) {
            return fileNameDetect;
        }

        return null;
    }

    public static void main(String[] args) throws IOException {
        Tika tika = new Tika();

        if (args.length != 1) {
            printUsage();
            return;
        }

        Path path = Paths.get(args[0]);

        TikaFileTypeDetector detector = new TikaFileTypeDetector();

        String contentType = detector.probeContentType(path);

        System.out.println("File is of type - " + contentType);
    }

    public static void printUsage() {
        System.out.print("Usage: java -classpath ... "
                + TikaFileTypeDetector.class.getName()
                + " ");
    }
}

以下是mime-type的自定义xml:

 <?xml version="1.0" encoding="UTF-8"?>
 <mime-info>
   <mime-type type="application/hello">
          <glob pattern="*.properties"/>
   </mime-type>
 </mime-info>

apache docs中,它表示如上所述在xml中添加新的mime类型并将其添加到代码库中。我现在如何将其添加到我的代码中?我无法找到关于此

的更多信息

注意:我正在使用apache tika

1 个答案:

答案 0 :(得分:0)

Tika 1.10或更高版本通过向其text/x-java-properties

添加名为tika-mimetypes.xml的新mime类型来解决此问题

使用以下相关性,这样您就不必通过添加自定义mimetype.xml

来解决问题
    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.10</version>
    </dependency>

我还想补充一点,根据documentation,项目团队欢迎添加任何标准mime类型的补丁如果org/apache/tika/mime/tika-mimetypes.xml中缺少它。

Snapshot from tika api documentation