package Ġcom . k ai . util Ċ Ċ import Ġandroid . util . Log Ċ import Ġjava . io . FileInputStream Ċ import Ġkotlin . experimental . and Ċ Ċ /** Ċ Ġ* Ġ@ ProjectName : ĠCO B Ċ Ġ* Ġ@ Description : Ġ Ġæĸĩä»¶ ç±»åŀĭ åĪ¤æĸŃ æł¹æį® ç±» Ċ Ġ* Ġ@ Author : Ġ å¹¿ å· ¨ å¤© ä¸ĭ Ċ Ġ* Ġ@ Update Date : Ġ 2 0 2 0 / 9 / 2 2 Ġ 1 6 : 5 1 Ċ Ġ*/ Ċ object ĠFile Type Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġbytes To HexString ( src : ĠByteArray ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġif Ġ( src Ġ== Ġnull Ġ|| Ġsrc . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġsrc . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠInt Ġ= Ġ( src [ i ]. toInt ()). and ( 0 xFF ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhv Ġ= ĠInteger . to HexString ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hv . length Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( hv ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠstringBuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget FileType ( path : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠfileType Ġ= Ġ" text " ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` is ` Ġ= ĠFileInputStream ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠByteArray ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` is `. read ( b , Ġ 0 , Ġb . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġorigin Byte Ġ= Ġbytes To HexString ( b ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Byte Ġ= Ġorigin Byte !!. toUpperCase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . e (" FileType "," å¤´ æĸĩä»¶ æĺ¯ Ġ: "+ origin Byte ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileType Ġ= ĠType Dict . check Type ( origin Byte ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . e (" FileType "," åĲİ ç¼Ģ åĲį æĺ¯ Ġ: "+ ĠfileType ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` is `. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" FileType ", Ġe . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠfileType ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Suffix From Mine Type ( mine Type : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsuffix Ġ= Ġ" txt " ĊĠĠĠĠĠĠĠ Ġwhen Ġ( mine Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / ms word " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" doc " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . open xm lform ats - off iced ocument . word processing ml . document " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" docx " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . ms - power point " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" ppt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . open xm lform ats - off iced ocument . presentation ml . presentation " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" ppt x " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / pdf " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" pdf " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio / mpeg " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" mpeg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image / gif " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" gif " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image / jpeg " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" jpg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image / png " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" png " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / plain " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" txt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / xml " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" xml " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / html " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" html " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / css " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" css " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / javascript " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" js " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image / bmp " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" bmp " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video / mp 4 " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" mp 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio / x - wav " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" wav " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio / wav " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" wav " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio / x - ms - w ma " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" w ma " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video / x - ms - w mv " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" w mv " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / x - zip - compressed " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" zip " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio / fl ac " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" fl ac " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / rar " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" rar " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / zip " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" zip " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . android . package - archive " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" apk " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . open xm lform ats - off iced ocument . spreadsheet ml . sheet " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" xlsx " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / vnd . ms - excel " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" xls " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / x - compress " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / pgp - keys " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" key " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / json " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / x - info " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" info " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / octet - stream " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" application / x - ms dos - program " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Ġ= Ġ" bat " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuffix ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠType Dict Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcheck Type ( fileType : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( fileType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FFD 8 FF " Ġ-> Ġ" jpg " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 9 5 0 4 E " Ġ-> Ġ" png " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 7 4 9 4 6 " Ġ-> Ġ" j if " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" D 0 CF 1 1 " Ġ-> Ġ" doc " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 5 5 0 4 4 " Ġ-> Ġ" pdf " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 5 0 4 B 0 3 " Ġ-> Ġ" docx " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 D 4 1 4 3 " Ġ-> Ġ" ape " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 6 6 4 C 6 1 " Ġ-> Ġ" fl ac " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FF FB 9 0 " Ġ-> Ġ" mpeg " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 2 5 7 4 D " Ġ-> Ġ" key " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 6 2 3 9 3 9 " Ġ-> Ġ" td ck " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 A 4 3 7 9 " Ġ-> Ġ" cfg " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 9 4 4 3 3 " Ġ-> Ġ" mp 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 B 0 A 2 0 " Ġ-> Ġ" json " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 5 7 7 7 6 F " Ġ-> Ġ" info " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 8 1 4 7 BE " Ġ-> Ġ" bat " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" txt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }