gpt4 book ai didi

java - Java 中读取文件类型 (MIME) 返回 null

转载 作者:行者123 更新时间:2023-11-30 06:06:14 24 4
gpt4 key购买 nike

我正在编辑一个不想在我的系统上运行的自定义 CSV 导入器。我的 Java 版本是:“1.8.0_171”。

String contentType = Files.probeContentType(filePath);          
//Should return "text/csv";
System.out.println("You have "+contentType+" type file.");
//returns "You have null type file."

我已检查该文件是否可访问 - 它返回 true。

System.out.println( "File is readable: " + Files.isReadable(filePath));
// returns: "File is readable: true"

接下来我应该采取什么步骤?我发现了一些类似的错误:

https://bugs.java.com/view_bug.do?bug_id=JDK-7144997 https://bugs.openjdk.java.net/browse/JDK-8080369

但是我不知道它们是否相关。

更新将 Java 更新到版本“10.0.1”没有帮助。

更新2将 null 添加到允许的文件类型列表确实有效,但是我认为这是一个巨大的黑客攻击,并且仍然需要解决。

最佳答案

在没有安装任何附加 FileTypeDetector 实现的 Windows 上,Java 将使用默认文件类型检测器 RegistryFileTypeDetector,它将返回与该特定计算机上的扩展名关联的任何内容,这意味着返回 HKEY_CLASSES_ROOT\.csv 下的所有内容。

如果您想启用某些软件运行,请考虑通过 ServiceLoader 机制在类路径上安装自定义 FileTypeDetector 或将 .csv 与所需值关联注册表。

关于java - Java 中读取文件类型 (MIME) 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com