libmagic 5.45.0+0
libmagic: ^5.45.0+0 copied to clipboard
A binding to the libmagic library for magic numbers detection using dart:ffi provinding a simple and easy way to identify file types from dart code.
example/libmagic_example.dart
import 'dart:ffi';
import 'dart:io';
import 'package:libmagic/libmagic.dart';
void main() {
late final Magic libmagic;
late final magic_t magic;
/// Load the libmagic library from the system
DynamicLibrary? lib;
try {
lib = switch (Platform.operatingSystem) {
'linux' => DynamicLibrary.open('libmagic.so'),
'macos' => DynamicLibrary.open('libmagic.dylib'),
'windows' => DynamicLibrary.open('magic1.dll'),
_ => throw Exception('Unsupported platform')
};
} catch (e) {
print('Failed to load libmagic: $e');
}
if (lib == null) {
return;
}
libmagic = Magic(lib);
/// Open the magic database
magic = libmagic.magic_open(MAGIC_NONE);
/// Load the magic database
libmagic.magic_load(magic, nullptr);
/// Get the version of the magic database
final version = libmagic.magic_version();
/// Set the flags for the magic database
final flags = libmagic.magic_setflags(magic, MAGIC_MIME_TYPE);
/// Get the flags for the magic database
final getFlags = libmagic.magic_getflags(magic);
/// Close the magic database
libmagic.magic_close(magic);
}