zoukankan      html  css  js  c++  java
  • 文件大小可视化

    import java.io.File
    
    fun main() {
    	val c = File("""C:""")
    	
    	for (i in (c.listFiles()?:return)) {
    		println("""
    			|${ i.getAbsolutePath() }, 
    			|${ when{i.isFile()->"文件"; i.isDirectory()->"目录"; else->"未知"} }, ${ i.getFileSize() }
    			|""".trimMargin("|"))
    	}
    }
    
    // 文件大小可视化
    data class FileSize(val size: Double, val dw: String) {
    	override fun toString() : String {
    		var fsize: String = "%.2f".format(size)
    		when {
    			fsize.matches(""".*.00$""".toRegex()) -> fsize = fsize.replace(".00", "")
    			fsize.matches(""".*.[1-9]0$""".toRegex()) -> fsize = fsize.replace("0$".toRegex(), "")
    		}
    		return "$fsize $dw"
    	}
    }
    
    fun File.getFileSize() : FileSize? {
    	val size = this.length().toDouble()
    	return when {
    		size in 1.0*1024 .. 1.0*1024*1024 -> FileSize(size/1024, "KB")
    		size in 1.0*1024*1024 .. 1.0*1024*1024*1024 -> FileSize(size/1024/1024, "MB")
    		size in 1.0*1024*1024*1024 .. 1.0*1024*1024*1024*1024 -> FileSize(size/1024/1024/1024, "GB")
    		else -> FileSize(size, "Byte")
    	}
    }
    
    C:my_path_eve_var.txt, 
    文件, 2.8 KB
    
    C:OEMSF, 
    文件, 317.54 KB
    
    C:pagefile.sys, 
    文件, 7.93 GB
    
    C:perflogs, 
    目录, 0 Byte
    
    C:ping.jpg, 
    文件, 1.51 MB
    
    C:Program Files, 
    目录, 8 KB
    
  • 相关阅读:
    拟阵学习笔记
    HNOI 2016 解题报告
    HNOI 2015 解题报告
    一类动态规划问题状态的简化
    组合数学学习笔记
    简单多项式学习笔记
    基础线代学习笔记
    后缀数据结构学习笔记
    图论学习笔记
    AT3673 [ARC085D] NRE 题解
  • 原文地址:https://www.cnblogs.com/develon/p/11465328.html
Copyright © 2011-2022 走看看