是否可以从加载到 MemoryStream 的文件中获取文件扩展名或类型?

Dar*_*ght 5 c# memorystream

我正在 C# 中创建一个服务,该服务将由将处理和存储文件的 ASP.Net Web API 使用。

作为 Web API 的一部分,我将文件存储在MemoryStreams 中,然后将其传递给服务进行实际处理和存储。

该服务的一部分是为每个文件生成一个新的文件名。

所以这引出了我的问题,现在是否有可能找出文件的文件类型/扩展名,因为它位于 MemoryStream 中?

Ale*_*kov 3

没有扩展,你可以猜测类型:

除非文件内容MemoryStream本身包含名称/扩展名,否则不包含有关原始文件名的任何信息。

您可以尝试通过读取流的部分/全部内容来检测文件的类型(例如,许多格式在开头都有幻数/签名)。

还有几个类似的问题,例如Using .NET, how can you find the mime type of a file based on the file签名而不是扩展名(讨论使用UrlMon来检测类型)。