package Ġcom . mat isse . compress Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . provider . Open able Columns Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġæĸĩä»¶ å·¥åħ· ç±» Ċ Ġ* Ċ Ġ* ĠAuthor : Ġn anch en Ċ Ġ* ĠEmail : Ġli ush il in 5 2 0 @ fox mail . com Ċ Ġ* ĠDate : Ġ 2 0 1 7 - 0 3 - 0 8 ĠĠ 9 : 0 3 Ċ Ġ*/ Ċ object ĠFile Util Ġ{ ĊĊĠĠĠ Ġconst Ġval ĠFILE S _ PATH Ġ= Ġ" Compress Helper " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® æĸĩä»¶ è·¯å¾Ħ èİ·åıĸ æĸĩä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfilePath Ġæĸĩä»¶ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ return Ġæĸĩä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetFile By Path ( filePath : ĠString ) Ġ= ĠFile ( filePath ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĸĩä»¶ æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfilePath Ġæĸĩä»¶ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true `: Ġ åŃĺåľ¨ < br ></ br >` false `: Ġä¸į åŃĺåľ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis File Exists ( filePath : ĠString ) Ġ= Ġis File Exists ( getFile By Path ( filePath )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĸĩä»¶ æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġæĸĩä»¶ ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true `: Ġ åŃĺåľ¨ < br ></ br >` false `: Ġä¸į åŃĺåľ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis File Exists ( file : ĠFile ?) Ġ= Ġfile Ġ!= Ġnull Ġ&& Ġfile . exists () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĺ¯åĲ¦ æĺ¯ çĽ®å½ķ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdir Path Ġ çĽ®å½ķ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true `: Ġæĺ¯ < br ></ br >` false `: Ġ åĲ¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Dir ( dir Path : ĠString ) Ġ= Ġis Dir ( getFile By Path ( dir Path )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĺ¯åĲ¦ æĺ¯ çĽ®å½ķ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġæĸĩä»¶ ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true `: Ġæĺ¯ < br ></ br >` false `: Ġ åĲ¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis Dir ( file : ĠFile ?) Ġ= Ġis File Exists ( file ) Ġ&& Ġfile !!. isDirectory ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĺ¯åĲ¦ æĺ¯ æĸĩä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfilePath Ġæĸĩä»¶ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true `: Ġæĺ¯ < br ></ br >` false `: Ġ åĲ¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis File ( filePath : ĠString ) Ġ= Ġis File ( getFile By Path ( filePath )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ æĺ¯åĲ¦ æĺ¯ æĸĩä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfile Ġæĸĩä»¶ ĊĠĠĠĠ Ġ* Ġ@ return Ġ` true `: Ġæĺ¯ < br ></ br >` false `: Ġ åĲ¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis File ( file : ĠFile ?) Ġ= Ġis File Exists ( file ) Ġ&& Ġfile !!. isFile ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĪª åıĸ æĸĩä»¶ åĲįç§° ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġ Ġæĸĩä»¶ åĲįç§° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsplit FileName ( fileName : ĠString ): ĠArray < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġname Ġ= ĠfileName ĊĠĠĠĠĠĠĠ Ġvar Ġextension Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠfileName . lastIndexOf (".") ĊĠĠĠĠĠĠĠ Ġif Ġ( i Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠfileName . substring ( 0 , Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= ĠfileName . substring ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( name , Ġextension ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æĸĩä»¶ åĲįç§° ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠ Ġä¸Ĭ ä¸ĭ æĸĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġuri ĠĠĠĠĠĠ Ġuri ĊĠĠĠĠ Ġ* Ġ@ return ĠĠĠĠĠĠĠĠĠ Ġæĸĩä»¶ åĲįç§° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget FileName ( context : ĠContext , Ġuri : ĠUri ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( uri . scheme Ġ== Ġ" content ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġcontext . content Resolver . query ( uri , Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor Ġ!= Ġnull Ġ&& Ġcursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcursor . getString ( cursor . getColumnIndex ( Open able Columns . DISPLAY _ NAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġuri . path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcut Ġ= Ġresult !!. lastIndexOf ( File . separator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cut Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult . substring ( cut Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ çľŁ å®ŀ çļĦ è·¯å¾Ħ ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠ Ġä¸Ĭ ä¸ĭ æĸĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġuri ĠĠĠĠĠĠ Ġuri ĊĠĠĠĠ Ġ* Ġ@ return ĠĠĠĠĠĠĠĠĠ Ġæĸĩä»¶ è·¯å¾Ħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Real Path From URI ( context : ĠContext , Ġuri : ĠUri ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġcontext . content Resolver . query ( uri , Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( cursor Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri . path ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġcursor . getColumnIndex ( Media Store . Images . Image Columns . DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreal Path Ġ= Ġcursor . getString ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreal Path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ