Mime 3.7.0
dotnet add package Mime --version 3.7.0
NuGet\Install-Package Mime -Version 3.7.0
<PackageReference Include="Mime" Version="3.7.0" />
paket add Mime --version 3.7.0
#r "nuget: Mime, 3.7.0"
// Install Mime as a Cake Addin #addin nuget:?package=Mime&version=3.7.0 // Install Mime as a Cake Tool #tool nuget:?package=Mime&version=3.7.0
Mime
.NET wrapper for libmagic
Install
via NuGet:
PM> Install-Package Mime
Requirements
Supported runtimes:
- linux-musl-x64
- linux-x64
- osx-arm64(tested on macOS 13 Ventura)
- osx-x64
- win-x64
Basic usage
using HeyRed.Mime;
// (Optionally) You can set path to magic database file manually.
MimeGuesser.MagicFilePath = "/path/to/magic.mgc";
// Guess mime type of file(overloaded method takes byte array or stream as arg.)
MimeGuesser.GuessMimeType("path/to/file"); //=> image/jpeg
// Get extension of file(overloaded method takes byte array or stream as arg.)
MimeGuesser.GuessExtension("path/to/file"); //=> jpeg
// Get mime type and extension of file(overloaded method takes byte array or stream as arg.)
MimeGuesser.GuessFileType("path/to/file"); //=> FileType
Advanced
Want more than just the mime type? Use the Magic class:
string calc = @"C:\Windows\System32\calc.exe";
using var magic = new Magic(MagicOpenFlags.MAGIC_NONE);
magic.Read(calc); //=> PE32+ executable (GUI) x86-64, for MS Windows
// Check encoding:
string textFile = @"F:\Temp\file.txt";
using var magic = new Magic(MagicOpenFlags.MAGIC_MIME_ENCODING);
magic.Read(textFile); //=> Output: utf-8
Also, we can combine flags with "|" operator. See all flags for more info.
Remarks
- The Magic class is not thread safe, but if you use different instances on different threads it seems to work fine.
- The MimeGuesser is thread safe, since it generates a new instance of Magic class on each use.
Possible problems
Exception | Solution |
---|---|
DllNotFoundException | Make sure that your bin folder contains runtimes directory. If you publishing platform dependent app, then bin should be contains libmagic-1 (.dll, .so or .dylib) and magic.mgc files. |
BadImageFormatException | Make sure when you target the AnyCPU platform the Prefer 32-bit option is unchecked. Or try to target x64/arm64 instead. |
MagicException: Could not find any valid magic files! | Make sure your magic.mgc file contains in one of /runtimes/ subdirs or along with libmagic-1.[dll|lib|dylib]. Or set path to custom database as described in basic usage |
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- MimeTypesMap (>= 1.0.9)
-
.NETFramework 4.8
- MimeTypesMap (>= 1.0.9)
-
.NETStandard 2.0
- MimeTypesMap (>= 1.0.9)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Mime:
Package | Downloads |
---|---|
NsfwSpy
NsfwSpy is an image and video classifier used to identify explicit/pornographic content using machine learning. |
|
SparkPostCore
.Net Core port of SparkPost class libary for using REST API. https://github.com/darrencauthon/csharp-sparkpost |
|
BXJG.Utils
Package Description |
|
DanSaul.SharedCode
Package Description |
|
Downlink
The main Downlink package including the controllers and infrastructure code |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Mime:
Repository | Stars |
---|---|
NsfwSpy/NsfwSpy.NET
A .NET image and video classifier used to identify explicit/pornographic content written in C#.
|
Version | Downloads | Last updated |
---|---|---|
3.7.0 | 498 | 12/14/2024 |
3.6.0 | 277,006 | 12/5/2023 |
3.5.2 | 227,041 | 2/27/2023 |
3.5.1 | 1,266 | 2/25/2023 |
3.4.1 | 111,557 | 12/12/2022 |
3.4.0 | 172,944 | 5/22/2022 |
3.3.0 | 141,739 | 12/2/2021 |
3.2.3 | 259,737 | 7/5/2021 |
3.2.2 | 229,633 | 9/11/2020 |
3.2.1 | 1,406 | 9/11/2020 |
3.1.0 | 196,989 | 1/9/2020 |
3.0.2 | 1,060,307 | 10/23/2018 |
3.0.1 | 65,240 | 5/13/2018 |
3.0.0 | 65,058 | 12/28/2017 |
2.3.5 | 79,619 | 8/19/2017 |
2.3.4 | 2,825 | 8/17/2017 |
2.3.2 | 120,434 | 6/1/2017 |
2.3.1 | 3,004 | 5/30/2017 |
2.3.0 | 3,063 | 5/29/2017 |
2.2.0 | 3,331 | 5/13/2017 |
2.1.1 | 5,438 | 4/10/2017 |
2.1.0 | 3,067 | 4/8/2017 |
2.0.0 | 5,198 | 12/19/2016 |
1.3.2 | 4,043 | 11/8/2016 |
1.3.1 | 3,979 | 11/5/2016 |
1.3.0 | 3,458 | 11/4/2016 |
1.2.1 | 3,055 | 10/29/2016 |
1.2.0 | 3,061 | 10/28/2016 |
1.1.0 | 3,113 | 10/6/2016 |
1.0.0 | 4,596 | 9/28/2016 |