c# - Is there a way to know if a filename is an Excel format? -


my question may seem quite trivial despite numerous research, haven't found answer.

is there way in .net know if filename excel spreadsheet ?

i not interested in specific extension (.xls, .xlsx, etc), know if file excel generic spreadsheet.

long ago, wrote similar here code:

private enum extensions {     unknown = 0,     docorxls,     pdf,     jpg,     png,     docxorxlsx, }  private static readonly dictionary<extensions, string> extensionsignature = new dictionary<extensions, string>     {         {extensions.docorxls, "d0-cf-11-e0-a1-b1-1a-e1"},         {extensions.pdf, "25-50-44-46"},         {extensions.jpg, "ff-d8-ff-e"},         {extensions.png, "89-50-4e-47-0d-0a-1a-0a"},         {extensions.docxorxlsx, "50-4b-03-04-14-00-06-00"}     };  private static string getextension(byte[] bytes) {     if (bytes.length < 8)         return string.empty;     var signaturebytes = new byte[8];     array.copy(bytes, signaturebytes, signaturebytes.length);     string signature = bitconverter.tostring(signaturebytes);     extensions extension = extensionsignature.firstordefault(pair => signature.contains(pair.value)).key;     switch (extension)     {         case extensions.unknown:             return string.empty;         case extensions.docorxls:             if (bytes.length < 512)                 break;             signaturebytes = new byte[4];             array.copy(bytes, 512, signaturebytes, 0, signaturebytes.length);             signature = bitconverter.tostring(signaturebytes);             if (signature == "ec-a5-c1-00")                 return ".doc";             return ".xls";         case extensions.pdf:             return ".pdf";         case extensions.jpg:             return ".jpg";         case extensions.png:             return ".png";         case extensions.docxorxlsx:             string filebody = encoding.utf8.getstring(bytes);             if (filebody.contains("word"))                 return ".docx";             if (filebody.contains("xl"))                 return ".xlsx";             break;         default:             throw new argumentoutofrangeexception();     }     return string.empty; } 

Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

angularjs - ng-repeat duplicating items after page reload -