icon property
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;
}