static
func returnCacheSize() ->
String {
return
String(format:
"
%.2f
"
,XCache.forderSizeAtPath(folderPath: NSHomeDirectory()))
* 清除缓存 自己决定清除缓存的位置
static
func cleanCache(competion:()->
Void) {
XCache.deleteFolder(path: NSHomeDirectory()
+
"
/Documents
"
)
XCache.deleteFolder(path: NSHomeDirectory()
+
"
/Library
"
)
XCache.deleteFolder(path: NSHomeDirectory()
+
"
/tmp
"
)
competion()
* 删除单个文件
static
func deleteFile(path: String) {
let manage
= FileManager.
default
try
manage.removeItem(atPath: path)
}
catch
{
static
func deleteFolder(path: String) {
let manage
= FileManager.
default
if
!
manage.fileExists(atPath: path) {
let childFilePath
=
manage.subpaths(atPath: path)
for
path_1
in
childFilePath!
{
let fileAbsoluePath
= path+
"
/
"
+
path_1
XCache.deleteFile(path: fileAbsoluePath)
* 计算单个文件的大小
static
func returnFileSize(path:String) ->
Double {
let manager
= FileManager.
default
var fileSize:Double
=
0
let attr
=
try
manager.attributesOfItem(atPath: path)
fileSize
= Double(attr[FileAttributeKey.size]
as
!
UInt64)
let dict
= attr
as
NSDictionary
fileSize
=
Double(dict.fileSize())
}
catch
{
dump(error)
return
fileSize/
1024
/
1024
* 遍历所有子目录, 并计算文件大小
static
func forderSizeAtPath(folderPath:String) ->
Double {
let manage
= FileManager.
default
if
!
manage.fileExists(atPath: folderPath) {
return
0
let childFilePath
=
manage.subpaths(atPath: folderPath)
var fileSize:Double
=
0
for
path
in
childFilePath!
{
let fileAbsoluePath
= folderPath+
"
/
"
+
path
fileSize
+=
XCache.returnFileSize(path: fileAbsoluePath)
return
fileSize