package Ġorg . mag ical water . mg kotlin . mg util sk t . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Environment Ċ import Ġjava . io .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġ å¿Ĺ æľ ĭ Ġon Ġ 2 0 1 7 / 1 2 / 3 0 . Ċ Ġ* Ġ è® Ģ åıĸ , Ġ å¯ « åħ¥ æª Ķ æ¡Ī Ċ Ġ*/ Ċ class ĠMG FileUtils Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġdir Name : ĠString Ġ= Ġ" MG File " ĊĊĠĠĠĠĠĠĠ Ġ// éł Ĳ è¨Ń è·¯ å¾ ĳ , Ġfile Dir / mg File ĊĠĠĠĠĠĠĠ Ġvar Ġdefault Dir : ĠFile ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// sd åį¡ è·¯ å¾ ĳ ĊĠĠĠĠĠĠĠ Ġvar Ġsd Dir : ĠFile ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ çī© ä»¶ , Ġåıª æĺ¯ çĤº äºĨ å¾ĹåĪ° éł Ĳ è¨Ń çļĦ Ġ è·¯ å¾ ĳ ĊĠĠĠĠĠĠĠ Ġfun Ġinit ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Dir Ġ= ĠFile ( context . files Dir , Ġdir Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ M GF il è³ĩæĸĻ å¤ ¾ å° ļ æľª åī µ å»º , Ġ éł Ī åħĪ å»ºç«ĭ è³ĩæĸĻ å¤ ¾ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Dir ?. mkdir s () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsd Dir Ġ= ĠFile ( Environment . get External Storage Directory (), Ġdir Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsd Dir ?. mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// å°ĩ åŃĹ ä¸² å¯ « åħ¥ æª Ķ æ¡Ī , Ġ åĽŀ åĤ ³ å¯ « åħ¥ æĺ¯åĲ¦ æĪĲåĬŁ , Ġ å¯ « åħ¥ æª Ķ æ¡Ī åıªèĥ½ åľ¨ åŃĲ çı¾ æĪĲ åĳ¼ åı« ĊĠĠĠĠĠĠĠ Ġfun Ġwrite ( text : ĠString , Ġname : ĠString , Ġpath : ĠFile ? Ġ= Ġdefault Dir , Ġnew Thread : ĠBoolean ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsuccess Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Thread ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Ġ= ĠMG Thread Utils . in Sub Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġwrite File ( text , Ġname , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread . join () Ġ// çŃīå¾ħ å¯ « åħ¥ å®ĮæĪĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite File ( text , Ġname , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuccess ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// å°ĩ åŃĹ ä¸² è® Ģ åĩº ĊĠĠĠĠĠĠĠ Ġfun Ġread ( name : ĠString , Ġpath : ĠFile ? Ġ= Ġdefault Dir , Ġnew Thread : ĠBoolean ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Thread ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Ġ= ĠMG Thread Utils . in Sub Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠreadFile ( name , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread . join () Ġ// çŃīå¾ħ å¯ « åħ¥ å®ĮæĪĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠreadFile ( name , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtext ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġwrite File ( text : ĠString , Ġname : ĠString , Ġpath : ĠFile ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Write Condition OK ( path )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoutputFile Ġ= ĠFile ( path , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMG Log Utils . d (" å¯ « åħ¥ æª Ķ æ¡Ī : Ġ${ outputFile . absolute Path }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠFile Writer ( outputFile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . flush () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMG Log Utils . d (" å¯ « åħ¥ éģİ ç¨ĭ çĻ ¼ çĶŁ éĮ ¯ èª ¤ : Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠreadFile ( name : ĠString , Ġpath : ĠFile ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Write Condition OK ( path )) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput File Ġ= ĠFile ( path , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMG Log Utils . d (" è® Ģ åıĸ æª Ķ æ¡Ī : Ġ${ inputFile . absolute Path }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åħĪ æª ¢ æŁ¥ è·¯ å¾ ĳ æĺ¯åĲ¦ æľī æª Ķ æ¡Ī åŃĺåľ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! inputFile . exists () Ġ|| Ġ! inputFile . isFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMG Log Utils . d (" è·¯ å¾ ĳ ä¸ĭ çĦ¡ æª Ķ æ¡Ī åŃĺåľ¨ : Ġ${ inputFile . absolute Path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠFileReader ( inputFile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġreader . read Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtext ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// æª ¢ æŁ¥ åı¯ åĲ¦ å¯ « åħ¥ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġis Write Condition OK ( path : ĠFile ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( path Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å° ļ æľª åĪĿå§ĭåĮĸ , Ġ ä¸įèĥ½ å¯ « åħ¥ æª Ķ æ¡Ī ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMG Log Utils . w (" è·¯ å¾ ĳ null , Ġ ä¸įèĥ½ å¯ « åħ¥ æª Ķ æ¡Ī ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MG Thread Utils . is Main ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸» ç· ļ ç¨ĭ , Ġä¸į è¡Į å¯ « åħ¥ è® Ģ åıĸ , Ġ éĢĢåĩº ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMG Log Utils . w (" ä¸» ç· ļ ç¨ĭ , Ġ ä¸įèĥ½ å¯ « åħ¥ æª Ķ æ¡Ī ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }