#!/ usr / bin / env Ġkotlin Ċ // Ġargs [ 0 ] Ġis Ġfile Ġpath Ċ // Ġargs [ 1 ] Ġis Ġsmallest Ġfile Ġsize Ġin Ġbytes Ġ( In cl use ) Ċ Ċ import Ġjava . io . File Ċ import Ġkotlin . system . exit Process Ċ Ċ // remove Small Files ("/ Users / ne ul ion / Desktop / flat qq ") Ċ println (" ================================ ======= =") Ċ Ċ val ĠfileName Ġ= Ġread FileName From Args () Ċ if Ġ( fileName . isNull OrEmpty ()) Ġ{ ĊĠĠĠ Ġprintln (" please Ġinput Ġdir Ġor Ġfile Ġname !") ĊĠĠĠ Ġexit Process ( 1 ) Ċ } Ċ Ċ val ĠfileSize In cl use Ġ= Ġread FileSize From Args () Ċ if Ġ( file Size In cl use Ġ== Ġnull ) Ġ{ ĊĠĠĠ Ġprintln (" file Ġsize : Ġ${ args [ 1 ]} Ġis Ġnot Ġcorrect , Ġplease Ġinput Ġa Ġnumber !") ĊĠĠĠ Ġexit Process ( 2 ) Ċ } Ċ Ċ remove Small Files ( File ( fileName ), ĠfileSize In cl use Ġ?: Ġ 0 ) Ċ Ċ fun Ġremove Small Files ( file : ĠFile , ĠfileSize In cl use : ĠLong ) Ġ{ ĊĠĠĠ Ġif Ġ( file . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfile . list Files ()?. forEach Ġ{ Ġremove Small Files ( it , ĠfileSize In cl use ) Ġ} ĊĠĠĠ Ġ} Ġelse Ġif Ġ( file . isFile Ġ&& Ġfile . can Read () Ġ&& Ġfile . length () Ġ<= ĠfileSize In cl use ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" delete Ġfile : Ġ" Ġ+ Ġfile . name ) ĊĠĠĠĠĠĠĠ Ġfile . delete () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġread FileName From Args (): ĠString ? Ġ{ ĊĠĠĠ Ġif Ġ( args . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġargs [ 0 ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġread FileSize From Args (): ĠLong ? Ġ{ ĊĠĠĠ Ġif Ġ( args . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 L ĊĠĠĠ Ġ} Ġelse Ġif Ġ( args . size Ġ>= Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġargs [ 1 ]. to Long OrNull () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }