Swift获取文件大小_swift 文件大小_WMSmile的博客-程序员秘密

技术标签: 获取文件大小  ios  get file size swift  swift  

最近在项目里面,有做的获取文件大小的功能。所以就在在这儿分享一下。

swift3.0

func sizeForLocalFilePath(filePath:String) -> UInt64 {
    
    do {
    
        let fileAttributes = try FileManager.default.attributesOfItem(atPath: filePath)
        if let fileSize = fileAttributes[FileAttributeKey.size]  {
    
            return (fileSize as! NSNumber).uint64Value
        } else {
    
            print("Failed to get a size attribute from path: \(filePath)")
        }
    } catch {
    
        print("Failed to get file attributes for local path: \(filePath) with error: \(error)")
    }
    return 0
}
func covertToFileString(with size: UInt64) -> String {
    
    var convertedValue: Double = Double(size)
    var multiplyFactor = 0
    let tokens = ["bytes", "KB", "MB", "GB", "TB", "PB",  "EB",  "ZB", "YB"]
    while convertedValue > 1024 {
    
        convertedValue /= 1024
        multiplyFactor += 1
    }
    return String(format: "%4.2f %@", convertedValue, tokens[multiplyFactor])
}

参考文章get-file-size-in-swift

另外一种获取方法 通过data的大小转换成size

swift 4.0

/// get file size
///
/// - Parameter url: url
/// - Returns: Double file size
class func wm_getFileSize(_ url:String) -> Double {
    
    if let fileData:Data = try? Data.init(contentsOf: URL.init(fileURLWithPath: url)) {
    
        let size = Double(fileData.count) / (1024.00 * 1024.00)
        return size
    }
    return 0.00
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wm9028/article/details/103345160

智能推荐

Python 输入和输出_dyingstraw的博客-程序员秘密

输入和输出输出:print 和C语言的printf用法差不多。>>> print("hello python")hello python>>> print("hello python","I'm dyingstraw")hello python I'm dyingstraw>>> print(100)100>>> print(100*29)2900>>> a=100>>> pr

C程序中各个段的含义_whoami_I的博客-程序员秘密

首先应该知道几个查看段信息的指令: readelf -S file 查看各个段的名称,地址,大小等信息 objdump -s file 查看各个段的二进制和字符格式内容 hexdump -C file 查看整个二进制文件的二进制和字符格式内容 (1).text 程序的正文段,一般为本文件中的函数指令 (2).data 程序的数据段,一般静态变量和初始化的全局变量定义在此 (3...

深度学习笔记(六)VGG14_weixin_30666401的博客-程序员秘密

Very Deep Convolutional Networks for Large-Scale Image Recognition1. 主要贡献本文探究了参数总数基本不变的情况下,CNN随着层数的增加,其效果的变化。(thorough evaluation of networks of increasing depth using an architecture withvery ...

ROS探索总结(十四)——move_base(路径规划)_move_base_msgs.msg_hjwang1的博客-程序员秘密

转自:http://blog.csdn.net/hcx25909/article/details/9470297在上一篇的博客中,我们一起学习了ROS定位于导航的总体框架,这一篇我们主要研究其中最重要的move_base包。           在总体框架图中可以看到,move_base提供了ROS导航的配置、运行、交互接口,它主要包括两个部分:      (1

Python 爬虫编码格式问题 gb2312转换utf8_xfssolsu的博客-程序员秘密

print (response.encoding)   输出结果是   ISO-8859-1使用的方法是print response.text.encode('ISO-8859-1').decode(requests.utils.get_encodings_from_content(response.text)[0])iso-8859是什么?  他又被叫做Latin-1或“西欧语言”

记录编译Hi3559A时遇到的一些错误和解决方法_weixin_33752045的博客-程序员秘密

编译Hi3559A的内核出现错误:/linux-4.9.y_multi-core/arch/arm64/boot/uImage: No such file or directory解决方法:将u-boot/tools/下的mkimage这个工具放置到你的usr/bin/ 目录里面, 再kernel 进行make uImage 即可编译出uImage 即在to...

随便推点

C++引用传递_LUjh_的博客-程序员秘密

定义一个函数,参数为三个int类型变量的引用。在函数中交换三个参数的值,使其按升序排序。然后在主函数中输入三个整型数,调用该函数,按升序输出这三个数 例如:输入: 3 4 -1输出: -1 3 4#include<iostream>using namespace std;void add(int& a, int& b, int& c) { if (a > b) { int temp = a; a = b; b = temp; }

5.使用SOAP的XML消息传递_weixin_33805743的博客-程序员秘密

转自:https://blog.csdn.net/u014066037/article/details/51724658使用SOAP的XML消息传递的简易流程图:详细步骤如下:(1)服务请求者的应用程序创建一条SOAP消息,将此信息和服务提供者的网址一起提供给SOAP基础结构(例如一个SOAP客户机运行时)。SOAP客户机运行时与一个底层网络协议(例如HTTP)交互,然后在网络上将SOAP...

Uboot 中 ubi 命令 及内核参数设置_ubi命令_hbcbgcx的博客-程序员秘密

uboot中的ubi 内核启动参数分析bootargs=console=ttyS0,115200n8 ubi.mtd=4 root=ubi0:rtfs rootfstype=ubifs rw mtdparts=café_nand:200M(part1),300M(part2),400M(part3),500M(part4),-(part5)其中console部分是定义关于串口的参数,这里不解释...

关于安装了非正版Office软件(原电脑有正版)后不能使用原正版office解决方法!!!_装了盗版office就不能装正版吗_后見来者。的博客-程序员秘密

解决方法在开始栏输入cmd,切记以管理员运行!!!找到原先Office安装目录我的是安装在C:\Program Files\Microsoft Office\Office16,在控制台输入cd C:\Program Files\Microsoft Office\Office16输入cscript ospp.vbs /dstatus你会看到你安装了许多(2个以上office)其中有一个是***“LICENSE STATUS:—LICENSED—”***就是正版office。你会看到其他的几个都有时间

设计模式(六):装饰器模式_编程队伍的博客-程序员秘密

俄罗斯套娃大家都玩过吧,就像是这样这玩意玩起来很上头,打开一个总期待会有下一个,充满了趣味性程序员在写代码时,也会遇到像套娃这样令人上头的代码打开一个类,里面还有一个类,再打开一个,里面还有一个...这种套娃似的代码其实是一种很常见的设计模式,它叫装饰器模式今天我们就来扒一扒装饰器模式到底是个什么东西实际案例假如我们要写一个支付的功能,支付的方式有支付宝和微信我们用代码来实现这个功能首先我们要定义一个接口类Payment,这个接口类用来规定支付功能应该有哪些行为,也就是应该有哪些方法比

推荐文章

热门文章

相关标签