【发布时间】:2020-12-17 17:58:13
【问题描述】:
我的目标是通过代码识别文件的扩展名,例如给定文件是否为 .doc、.pdf、.svg 等。
一件事是通过文件名末尾的扩展名获取它。但是如果文件名中没有扩展名怎么办?
我尝试的另一件事是通过文件的初始字节来确定它。 例如:.docx 扩展文件以:[80,75,3,4,20,0,6, .....] 开头 在这种情况下,我只知道其中的一些。那么在哪里可以找到所有类型扩展的初始字节呢?
我认为第二个过程是一种有效的方法,但是还有其他确定文件扩展名的好方法吗?
【问题讨论】:
-
可能相关,这有帮助吗?:stackoverflow.com/questions/58289813/…
-
我刚才尝试了这个......但是即使这个包也根据文件名末尾提供的扩展名来确定它的类型............它当我从 pdf 的名称中删除扩展名并将名称末尾的扩展名从 .pdf 更改为 .xls 时出现异常......它相应地改变了输出。
-
如果文件名中没有扩展名,您有两个选择:检查文件的标题信息(如果存在)并查看它是否与已知格式匹配,或者尝试打开在一些接受特定文件类型的程序或库中的文件,看看它是否有效。 (要查找不同文件类型的标头值,谷歌“X文件规范”,通常会出现。)
-
此外,如果有人向您发送的文件没有文件扩展名、mime 类型、元数据文件或其他商定的了解文件类型的方式,第三种选择可能是跟踪它们在他们的办公室里打他们的脸,因为他们一开始就如此愚蠢地神秘或“高效”。
标签: file flutter dart file-management