libmagic 5.45.0+0 copy "libmagic: ^5.45.0+0" to clipboard
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);
}
0
likes
120
points
0
downloads

Publisher

verified publisherprojetretro.io

Weekly Downloads

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.

Repository (GitLab)

Documentation

API reference

License

unknown (license)

Dependencies

ffi

More

Packages that depend on libmagic