package Ġcom . ando . file . sample . utils Ċ Ċ import Ġand o . file . core . FileSize Utils Ċ import Ġand o . file . core . FileUtils Ċ import Ġandroid . util . Array Map Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġtodo Ġ 2 0 2 1 å¹´ 1 1 æľĪ 1 æĹ¥ Ġ 1 0 : 3 7 : 5 5 Ċ Ġ* Ċ Ġ* Ġ@ author Ġjav ak am Ċ Ġ* Ġ@ date Ġ 2 0 2 1 - 0 9 - 2 4 ĠĠ 1 5 : 5 3 Ċ Ġ*/ Ċ object ĠFile Analysis Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcontent :// com . android . providers . media . documents / document / image : 5 3 2 8 3 ĊĠĠĠĠ Ġ* Ġ/ storage / em ulated / 0 / DC IM / Screenshots / Games / Screenshot _ 2 0 2 1 _ 0 8 2 8 _ 2 2 0 9 5 6 _ com . tencent . tm gp . sg ame . jpg ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ è·¯ é£ŀ ĊĠĠĠĠ Ġ* Ġcontent :// com . android . external storage . documents / document / primary : aaaa a / 1 5 4 8 5 5 1 1 8 2 7 2 3 . png ĊĠĠĠĠ Ġ* Ġ/ storage / em ulated / 0 / Android / data / com . ando . file . sample / files / Documents / aaaa a / 1 5 4 8 5 5 1 1 8 2 7 2 3 . png ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġproceed File Dir ( dir Path : ĠString , Ġvar arg Ġsuffix Types : ĠString ): ĠMap < String , ĠLong >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdir Ġ= ĠFile ( dir Path ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! dir . exists () Ġ|| Ġ! dir . isDirectory ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġsuffix Size Map Ġ= ĠArray Map < String , ĠLong >() ĊĠĠĠĠĠĠĠ Ġval Ġdir Files Ġ= Ġdir . list Files () ĊĠĠĠĠĠĠĠ Ġif Ġ( dir Files . isNull OrEmpty ()) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġdir Files . forEach Ġ{ Ġf : ĠFile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuffix Ġ= ĠFileUtils . getExtension ( f . absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( suffix Types . contains ( suffix )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! suffix Size Map . keys . contains ( suffix )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Size Map . keys . add ( suffix ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuffix Size Map [ suffix ] Ġ= Ġsuffix Size Map [ suffix ]?. plus ( FileSize Utils . getFile Size ( f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuffix Size Map ĊĠĠĠ Ġ} Ċ Ċ }