icon property

IconData get icon

Get the best icon for the file or directory

Implementation

IconData get icon {
  if (this is Directory) {
    return FontAwesome.folder;
  } else if (this is File) {
    var f = this as File;
    if (f.mimeTypeType == "image") {
      return FontAwesome.file_image;
    } else if (f.mimeTypeType == "video") {
      return FontAwesome.file_video;
    } else if (f.mimeTypeType == "audio") {
      return FontAwesome.file_audio;
    } else if (f.mimeTypeType == "text") {
      return FontAwesome.file_code;
    } else {
      switch (f.fileExtensionWithoutDot.toLowerCase()) {
        case 'jpg':
        case 'jpeg':
        case 'png':
        case 'gif':
        case 'bmp':
        case 'webp':
        case 'svg':
        case 'tiff':
        case 'ico':
          return FontAwesome.file_image;
        case 'pdf':
          return FontAwesome.file_pdf;
        case 'doc':
        case 'docx':
          return FontAwesome.file_word;
        case 'xls':
        case 'xlsx':
        case 'csv':
          return FontAwesome.file_excel;
        case 'ppt':
        case 'pptx':
        case 'pps':
          return FontAwesome.file_powerpoint;
        case 'txt':
        case 'md':
          return FontAwesome.file_lines;
        case 'html':
        case 'htm':
        case 'css':
        case 'js':
        case 'dart':
        case 'json':
        case 'xml':
        case 'yaml':
        case 'yml':
        case 'cs':
        case 'java':
        case 'php':
        case 'py':
          return FontAwesome.file_code;
        case 'sql':
          return FontAwesome.database_solid;
        case 'zip':
        case 'rar':
        case 'rar5':
        case '7z':
        case 'tar':
        case 'gz':
        case 'bz2':
        case 'xz':
        case 'zst':
          return FontAwesome.file_zipper;
        case 'mp3':
        case 'wav':
        case 'flac':
        case 'ogg':
        case 'm4a':
        case 'wma':
        case 'aac':
        case 'opus':
          return FontAwesome.file_audio;
        case 'mp4':
        case 'mkv':
        case 'webm':
        case 'flv':
        case 'mov':
        case 'wmv':
        case '3gp':
        case '3g2':
        case 'm4v':
        case 'avi':
          return FontAwesome.file_video;
        case 'apk':
        case 'appbundle':
          return FontAwesome.android_brand;
        case 'exe':
        case 'msi':
          return FontAwesome.window_maximize;
        default:
          return FontAwesome.file;
      }
    }
  }
  return FontAwesome.file;
}