Dart| Flutter How to get extension name and MIME type of a file with example

This tutorial explains about below program

  • How to get the MIME type of a file
  • How to find the extension of a given file

How to get the MIME type of file?

This program explains about to get mime types of a file.

The mime package provides a lookupMimeType function, that returns the MIME type.

It parses the path of a file, returns extension, extension is checked against MIME types, and returns the MIME-type

Here is an example program

import 'package:mime/mime.dart';

void main() {
  print(getExtension("test.doc")); //application/msword
  print(getExtension("abc.pdf")); //application/pdf
  print(getExtension("photo.png")); //image/png
  print(getExtension("test.jpg")); //image/jpeg
  print(getExtension("config.xml")); //application/xml
  print(getExtension("abc.json")); //application/json
}

String getExtension(String path) {
  final mimeType = lookupMimeType(path);
  return mimeType;
}

Dart gets file extension

There are multiple ways to get the extension name of a file.

For example, if the given file is input.png, then the extension is png.

One way, using a split function

Create a function, that accepts a file path Inside a function, split the path using. separator and returns the parts of a string.

  List<String> split(Pattern pattern);

It returns the list of strings with parts. The last element is an extension that can be get using List.last property.

Here is an example program

void main() {
  print(getExtension("test.png"));
  print(getExtension("abc/test.png"));
}

String getExtension(String fileName) {
  return  fileName.split('.').last;
}

Output:

test
png

The above program fails if an extension is not found.

Let’s see another way is using path package🔗.

The Path package provides functions to process split and join operations on file system files.

Path provides an extension function

String extension(String path, [int level = 1])

level returns multiple extensions including include number of dots(.)

Here is an example program

import 'package:path/path.dart' as p;

void main() {
  print(getExtension("test"));
  print(getExtension("abc/test.png"));

  print(getExtension1("test", 1)); //returns empty
  print(getExtension1("abc.test.png", 2)); //.test.png
  print(getExtension1("abc.test.png", 1)); //.png
  print(getExtension1("abc.png", 1)); //.png
}

String getExtension1(String path, [int level]) {
  final extension = p.extension(path, level);
  return extension;
}