Dateityp mit C# ermitteln
Das ermitteln eines Dateityps nur durch Prüfen von Rohdaten kann aufwendig und fehlerträchtig sein; praktischerweise steht jedoch die native Funktion
FindMimeFromData
zur Verfügung, welche wir nutzen werden:
Wrapper für native Funktionalität bereitstellen
Die Verwendung gestaltet sich nun sehr intuitiv:
Beachtet jedoch bitte, dass auch diese Funktion u. U. nur begrenzt aussagekräftige Ergebnisse liefern kann und wie üblich verzichtet die Implementierung auf umfangreiche Fehlerbehandlung. Darüber hinaus bietet die native Funktion weitere Möglichkeiten, so beispielsweise das Übergeben eines Dateinamens bzw. einer URL.
01020304050607080910111213141516171819202122232425
public static class DataUtility { public static string GetMimeType(byte[] data) { DataUtility.FindMimeFromData(0, null, data, (uint) data.Length, null, 0, out uint address, 0);
// Daten kopieren und Speicher freigeben IntPtr ptr = new IntPtr(address); string mimeType = Marshal.PtrToStringAuto(ptr); Marshal.FreeCoTaskMem(ptr);
return mimeType; }
[DllImport("urlmon")] private static extern uint FindMimeFromData( uint pBC, string pwzUrl, byte[] pBuffer, uint cbSize, string pwzMimeProposed, uint dwMimeFlags, out uint ppwzMimeOut, uint dwReserverd );}
Holger
am 31.10.2018 um 20:37 Uhr
in Softwareentwicklung
.NET · C# · Informatik · Softwareentwicklung
.NET · C# · Informatik · Softwareentwicklung
Projektverweise
-
BitStadt – Stadtportal
Berlin · Hamburg · Amsterdam -
CCC – Fahrplan
Zeitpläne für den CCCongress
Kategorien / Archiv | Übersicht
- Allgemeines (22)
- Gesellschaft (5)
- Projekte (12)
- Softwareentwicklung (94)
- Technik (10)
- Theorie (9)
- PHP-Funktionen in C# (136)
- Wörterbuch (257)
Schlagworte
.NET · ADO.NET · Arbeit · ASP.NET MVC · Blog · C# · Generika · Gesellschaft · Informatik · Java · LINQ · Logik · Mathematik · Netzwerk · PHP · Projekt · Sicherheit · Softwareentwicklung · Studium · Technik · Theorie · Webdesign · WPF