fromPath static method

Future<MediaFile> fromPath(
  1. String filePath
)

Create MediaFile from file path

Implementation

static Future<MediaFile> fromPath(String filePath) async {
  final file = File(filePath);
  if (!await file.exists()) {
    throw Exception('File does not exist: $filePath');
  }

  final stat = await file.stat();
  final fileName = filePath.split('/').last;

  // Determine media type from file extension
  final extension = fileName.split('.').last.toLowerCase();
  MediaType mediaType;

  if (['mp4', 'avi', 'mov', 'mkv', 'wmv', 'flv', 'webm'].contains(extension)) {
    mediaType = MediaType.video;
  } else if (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].contains(extension)) {
    mediaType = MediaType.image;
  } else if (['mp3', 'wav', 'aac', 'flac', 'ogg', 'm4a'].contains(extension)) {
    mediaType = MediaType.audio;
  } else {
    throw Exception('Unsupported file type: $extension');
  }

  return MediaFile(
    path: filePath,
    name: fileName,
    type: mediaType,
    size: stat.size,
    creationDate: stat.modified,
  );
}