首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在iOS 14中从UIDocumentPickerViewController获取文件名和文件大小?

在iOS 14中,可以使用UIDocumentPickerViewController来获取文件名和文件大小。UIDocumentPickerViewController是一个系统提供的视图控制器,用于访问用户的文档、媒体库和云服务中的文件。

要获取文件名和文件大小,可以遵循以下步骤:

  1. 导入相关的框架和库:
代码语言:txt
复制
import MobileCoreServices
  1. 创建并配置UIDocumentPickerViewController:
代码语言:txt
复制
let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypeContent as String], in: .import)
documentPicker.allowsMultipleSelection = false
documentPicker.delegate = self

在上述代码中,我们指定了documentTypes为[kUTTypeContent as String],这表示我们希望选择任何类型的文件。如果你只想选择特定类型的文件,可以指定相应的UTI(Uniform Type Identifier)。

  1. 实现UIDocumentPickerDelegate协议中的方法:
代码语言:txt
复制
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
    guard let url = urls.first else { return }
    
    do {
        let fileAttributes = try FileManager.default.attributesOfItem(atPath: url.path)
        let fileSize = fileAttributes[FileAttributeKey.size] as? Int ?? 0
        let fileName = url.lastPathComponent
        
        print("File Name: \(fileName)")
        print("File Size: \(fileSize) bytes")
    } catch {
        print("Failed to retrieve file attributes: \(error)")
    }
}

func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
    // 用户取消选择文件
}

在didPickDocumentsAt方法中,我们首先获取选择的文件的URL。然后,通过FileManager.default的attributesOfItem方法获取文件的属性,其中包括文件大小。最后,我们使用URL的lastPathComponent属性获取文件名。

通过上述步骤,你可以在iOS 14中从UIDocumentPickerViewController中获取文件名和文件大小。注意,你可以根据需要对文件类型、选择多个文件等进行适当的定制。

针对腾讯云相关产品,腾讯云提供了多项云计算服务,包括对象存储、云服务器、云数据库等。你可以根据具体需求选择适合的腾讯云产品,以下是一些推荐的腾讯云相关产品:

  1. 对象存储:腾讯云 COS(Cloud Object Storage)是一种分布式存储服务,提供高可靠性、低成本的存储解决方案。适用于存储、管理和访问各种非结构化数据。详细信息请参考:腾讯云 COS产品介绍
  2. 云服务器:腾讯云云服务器是一种安全可靠、弹性扩展的云计算基础设施服务,提供多种实例类型满足不同业务场景需求。详细信息请参考:腾讯云云服务器产品介绍
  3. 云数据库:腾讯云云数据库提供多种数据库解决方案,包括关系型数据库(MySQL、SQL Server、PostgreSQL)、NoSQL数据库(MongoDB、Redis、Cassandra)等。详细信息请参考:腾讯云云数据库产品介绍

请注意,以上仅为示例,具体的腾讯云产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

4.5 C++ Boost 文件目录操作库

Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。...在本节中,我们将重点介绍如何使用Path目录类,包括如何创建和初始化Path对象、如何获取和设置路径成员变量、如何查询路径是否存在和创建路径、如何拼接和规范化路径等。...此外,还会探讨如何在不同操作系统中使用Path目录类以及如何处理Path异常。...Boost库中的Path目录类提供了一系列便捷的方法来实现路径拼接和追加操作,在本节中,我们将重点介绍如何在Boost库中进行路径拼接和追加操作,包括如何使用Path类成员函数来拼接路径、如何使用运算符...在本节中,我们将重点介绍如何使用Boost库中的函数和类来进行文件属性操作,包括如何使用Path类来获取和修改文件属性、如何使用文件流操作来实现属性访问等。

33620

4.5 C++ Boost 文件目录操作库

Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。...在本节中,我们将重点介绍如何使用Path目录类,包括如何创建和初始化Path对象、如何获取和设置路径成员变量、如何查询路径是否存在和创建路径、如何拼接和规范化路径等。...此外,还会探讨如何在不同操作系统中使用Path目录类以及如何处理Path异常。...Boost库中的Path目录类提供了一系列便捷的方法来实现路径拼接和追加操作,在本节中,我们将重点介绍如何在Boost库中进行路径拼接和追加操作,包括如何使用Path类成员函数来拼接路径、如何使用运算符...在本节中,我们将重点介绍如何使用Boost库中的函数和类来进行文件属性操作,包括如何使用Path类来获取和修改文件属性、如何使用文件流操作来实现属性访问等。

47010
  • 手机APP安装包缩减方案

    文章将分三大部分进行讲解 一、iOS安装包的构成 二、安装包缩减方案 三、相关工具和知识介绍 1 iOS安装包的构成 选择ipa安装包,右键打开压缩包可见,iOS安装包主要由三部分组成:二进制可执行文件...以腾讯手机管家iOS版本安装包为例:发布包解压缩后是39.6M,其中二进制可执行文件共25.54MB占比64%,资源文件8.63MB,占比22%,其他文件大小总和占比14%。 ? ?...2 安装包缩减方案 从第一部分可以看出,二进制可执行文件和资源文件是缩包方案的重点,下面分别从资源文件瘦身和二进制可执行文件瘦身两个方面进行详述。 ?...那么通过otool命令逆向__TEXT__cstring段来获取二进制文件中所有的字符串常量,并检查这些字符串常量是否匹配安装包中任意图片资源名(去除文件后缀,如@3x.jpg)。...② 用脚本获取两个版本中文件大小的差值 ③ 对步骤2中的结果进行排序和具体分析 ?

    1.5K60

    使用最小WEB API实现文件上传

    作为一名资深程序员,了解如何在最小化的Web API环境中实现文件上传,能够帮助开发者快速搭建高效、易维护的系统。...它封装了文件的相关信息,如文件名、文件大小、文件流等。2.2 处理上传文件的核心要点文件大小限制:为了防止大文件上传导致内存或磁盘空间的浪费,通常需要限制文件的大小。...,帮助我们获取文件信息,如:FileName:获取上传文件的原始文件名。...,我们可以设置文件大小限制。...通过简洁的代码,我们可以轻松地接收并保存上传的文件,同时确保文件上传过程的安全性和有效性。关键步骤包括:使用 IFormFile 接收上传的文件。设置文件大小限制和类型验证。处理文件存储和异常。

    1.7K30

    iOS断点续传

    此篇文章只讲解思路和原理 在项目中可能会用到较大的文件下载,比如较大的音频和视频文件,不可能一次下载完毕,用户可能下载一段时间,关闭程序,再次打开程序接着下载。这个时候,就需要实现断点续传的功能。...网络中断,客户端请求续传,因此需要在HTTP头中申明本次需要续传的片段: Range:bytes=512000- 这个头通知服务端从文件的512K位置开始传输文件 服务端收到断点续传请求,从文件的...客户端如何获取已经下载的文件字节数 客户端需要记录每次用户下载的文件大小。 那么如何记载呢?...其实我们可以直接获取指定路径下文件的大小,iOS已经提供了相关的功能,实现代码如下 [[[NSFileManager defaultManager] attributesOfItemAtPath: FileStorePath...设置文件名为键值,已经下载的文件字节数为值。 文件名为了防止重复,这里我们设置文件名为下载url的hash值,可以保证不重重。 至此断点续传原理就说完了。具体实现可以去看一些开源代码。

    1.7K30

    【Java 进阶篇】Java文件下载案例详解

    它允许用户从Web服务器上下载文件,例如文档、图片、音频、视频等。在本文中,我们将详细解释如何在Java Web应用程序中实现文件下载功能。我们将提供示例代码和逐步说明,以帮助您理解和实现这一功能。...文件下载是指从Web服务器获取文件并保存到本地计算机或移动设备的过程。这些文件可以是各种类型,例如文本文件、图像、音频、视频、压缩文件等。...从请求中获取文件的路径或标识符。 读取文件的内容。 设置HTTP响应的头信息,指定文件的类型和下载方式。 将文件内容写入HTTP响应的输出流。 关闭输入流和输出流。...使用URLDecoder处理文件名 在服务器端,您可以使用URLDecoder来解码从客户端接收的文件名。这是因为浏览器有时会对文件名进行URL编码。...防止目录遍历攻击:确保用户无法通过文件名访问应用程序的目录结构。 限制文件大小:如果需要,可以限制上传文件的大小,以防止下载大文件导致的性能问题。

    1.5K50

    Java 文件下载案例讲解

    它允许用户从Web服务器上下载文件,例如文档、图片、音频、视频等。在本文中,我们将详细解释如何在Java Web应用程序中实现文件下载功能。我们将提供示例代码和逐步说明,以帮助您理解和实现这一功能。...文件下载是指从Web服务器获取文件并保存到本地计算机或移动设备的过程。这些文件可以是各种类型,例如文本文件、图像、音频、视频、压缩文件等。...从请求中获取文件的路径或标识符。读取文件的内容。设置HTTP响应的头信息,指定文件的类型和下载方式。将文件内容写入HTTP响应的输出流。关闭输入流和输出流。...使用URLDecoder处理文件名在服务器端,您可以使用URLDecoder来解码从客户端接收的文件名。这是因为浏览器有时会对文件名进行URL编码。...防止目录遍历攻击:确保用户无法通过文件名访问应用程序的目录结构。限制文件大小:如果需要,可以限制上传文件的大小,以防止下载大文件导致的性能问题。

    40620

    fstream用法

    ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios::trunc:  如果文件存在,把文件长度设为0 可以把以上属性连接起来,如ios::out|ios::binary...打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用"或"或者"+"把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。...eg: //第一种打开文件方法 fstream file; file.open("d:\config.dat",ios::binary|ios::in,0); //如果open函数只有文件名一个参数,则是以读...如input.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。...另一种重载形式的原型是: int get();这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如x=input.get();和上例功能是一样的。

    90220

    0508-如何使用Hadoop的Archive处理小文件

    Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1 文档编写目的 Fayson在前面的文章《如何在Hadoop...中处理小文件》、《如何在Hadoop中处理小文件-续》和《如何使用Impala合并小文件》等,在文章中也详细说明了怎么去处理Hadoop中的小文件。...参数说明: -archiveName:指定归档文件名称 -p:指定要进行归档目录或文件的父目录 -r:指定归档文件的副本数 *:可以使用通配的方式归档一类文件或目录(如:test*表示以test开头的文件或目录...) /tmp:指定归档libarchive.har文件的输出目录 2.查看libarchive.har文件大小以及原始目录的文件大小 ?...5.访问libarchive.har归档的文件及获取归档文件中的内容 [root@cdh05 ~]# hadoop fs -ls har:///tmp/libarchive.har/avro [root

    2.6K00

    ifstream java_使用ifstream :: seekg和tellg获取文件大小

    当我尝试获取文件大小时,我有以下块来测试seekg和tellg的行为: int size = 0; ifstream in(fileName.c_str(), ifstream::in | ifstream...:end); size = in.tellg(); cout << “********** size stream8*** =” << size << endl; in.seekg(ios::beg,ios...它以前的位置是在文件的末尾 . seekg 将始终从文件的开头开始,如 stream5 所示? seekg 无法向后退,如 stream5 所示? seekg的第一个参数究竟是什么意思?...如果它是一个正值,它似乎超出了第二个参数指向的位置,如 stream4 所示 . 如果我想知道前100个字节后的大小,我必须使用-100,如 stream8 所示? 为什么 stream10 是2?...ofstream中 seekp 和 tellp 的属性为 seekg 和 tellg ?

    97030

    Go:使用TCP发送和接收大文件

    在Go中进行TCP编程时,文件的发送和接收是一个常见的问题,特别是处理大文件时。本文将深入探讨如何在Go中使用TCP发送和接收大文件,以及如何有效地处理这类问题。...因此,我们需要自己设计一种协议来明确数据的开始和结束。 一种常见的方法是在文件数据前面发送一个文件头,这个文件头包含了关于文件的元数据,比如文件名、文件大小等。...下面是一个简单的例子,它使用了一个固定大小的文件头来传输文件名和文件大小: 客户端代码示例: package main import ( "encoding/binary" "fmt" "...= nil { log.Fatal(err) } fmt.Printf("Received file: %s\n", fileName) } 在这个例子中,我们首先发送文件名,然后发送文件大小...服务器根据接收到的文件名创建文件,并使用接收到的文件大小来确定应该读取多少字节的文件内容。 这种方法可以处理多个文件的传输,每个文件的传输都以其文件头开始。

    1.7K10

    【QT】qt 文件操作

    Qt 提供了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件复制或重命名等。 2. 输入输出设备类 在 Qt 中,文件读写的类为 QFile 。...socket 是 I/O 设备, 串口、蓝牙等通信接口也是 I/O 设备,所以它们也是从 QIODevice 继承来的。...使用函数 QTemporaryFile::open() 就能创建一个文件名唯一的临时文件,在 QTemporaryFile 对象被删除时,临时文件被自动删除 QTcpSocket 和 QUdpSocket...文件和目录信息类 QFileInfo 是 Qt 提供的一个用于获取文件和目录信息的类,如获取文件名、文件大小、文件修改日期等。...() 获取完整的文件名; suffix() 获取文件后缀名; completeSuffix() 获取完整的文件后缀; size() 获取文件大小; isFile() 判断是否为文件; fileTime(

    18110

    【愚公系列】《微信小程序与云开发从入门到实践》048-使用云存储

    博客内容.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。...1.2 示例工程 - cloudStorageDemo 页面在示例工程中,创建了一个名为 cloudStorageDemo 的页面,用于演示如何在小程序中使用云存储功能。...查看文件信息:对于已经上传的文件,用户可以查看其详细信息,如:文件大小文件格式上传者最后更新时间下载地址文件ID2.3 权限管理云文件权限管理 与 云数据库权限管理 类似,主要是对文件的 可读性 和 可写性...2.6 文件命名规则在使用云存储时,上传的文件名需要遵循一定的规则,以确保文件能够正常存储和管理。具体规则如下:文件名不能为空。文件名不能以“/”开头。文件名中不能出现连续的“/”符号。...图片处理:统一管理图片的裁剪和缩放,以适应不同的使用场景。文件命名规则:确保文件名遵守一定规则,如长度限制、不能使用控制字符等。

    12820

    02 测试开发面试50问-下

    55、如何在脚本中执行 JavaScript 代码? 56、Appium 的定位策略有哪些? 57、请简述Appium的原理 58、iOS 和 Android 的 UI 自动化的原理是什么?...60、UI 测试做的是 iOS 还是 Android?讲讲 iOS 的 UI 怎么测? 61、获取 Appium 中的 content-desc 不为空的控件列表,代码不限。...73、如何查找一个文件大小超过5M的文件 74、如何查看进程?...) 78、每隔 2s 获取某个进程的 CPU 和 mem 数据并保存到 csv 数据文件 79、快排的实现 (代码实现) 80、算数组中查找出现次数过半的数(代码实现) 81、查找链表的倒数第三个数(代码实现...写一个SQL 查询语句:给一个字段,对其进行从大到小排序,取前十行。 关注「测试开发囤货」公众号回复「数据分析」,送你一套 《深入浅出Pandas:利用Python进行数据处理与分析》教程!

    72110

    iOS平台如何实现RTSP|RTMP播放端录像?

    我们录像模块,覆盖了RTMP、轻量级RTSP服务、RTSP|RTMP播放端录像,平台覆盖了Windows、Linux、Android、iOS,主要功能设计如下: [拉流]支持拉取RTSP流录像; [拉流...、播放、转发、内置轻量级RTSP服务SDK功能完全分离,支持随时录像; [url切换]在录像过程中,支持切换不同URL,如两个URL配置一致,则可以录制到同一个MP4文件,如不一致,可自动分割到下一个文件...H.265录制到MP4文件; [推送端265录像]推送端SDK支持H265录像; [推送端外部编码数据对接录像]支持推送端外部编码后数据(H.264/AAC)对接录像; [事件回调]从开始录像,到录像结束均有...技术实现本文以大牛直播SDK的iOS平台拉流端录像为例,大概介绍下相关接口的设计,废话不多说,先上代码:- (void)RecorderBtn:(UIButton *)button { NSLog...,可以只录像或只播放,如果同时录像和播放,只需要一个拉流实例来完成。​

    27800

    图像瘦身术:Java借助Tinify轻松将4M图片压缩至1M

    为了解决这个问题,可以使用图片压缩工具来减小图片的尺寸,然后再将压缩后的图片上传至对象存储服务(如阿里云OSS)。...通过压缩图片,可以有效减小文件大小,提高网站性能。1.2 Tinify概述Tinify是一个基于云的图片压缩服务,它能够显著减小图片的文件大小,同时保持图片的高质量。...OSS提供了丰富的功能,如文件上传、下载、删除、共享等,非常适合用于存储和管理图片。这里就不多介绍了,只要做过图片上传,相信大家都知道。...具体流程如下:3.1 检查文件大小判断上传的图片文件大小是否超过500KB。如果未超过,则不进行压缩,这一块可以根据自己业务进行处理。...文件命名:为了避免文件名冲突,可以使用UUID生成唯一的文件名。压缩图片删除:为了避免占用服务器内存,可以在压缩之后删除临时保存的压缩源文件。

    38911

    文件上传下载测试点

    、最小值、特殊字符(包含空格)、使用程序语句是否会对其造成影响、中文名称是否能正常显示 6、对于是否发布的设置是否正确 7、取值最大值、特殊字符、使用程序语句是否会对其造成影响 8、上传文件名测试,检查不符合文件名规范...9、上传文件名类型测试,检查不同文件类型是否支持如:.rar,.mp3,.avi等 10、上传文件大小测试,检查不同文件规格大小如:0字节文件, 1kb, 200kb, 2mb, 20mb,2g等 11...、上传文件容错性测试:如检查覆盖同文件操作 12、上传文件异常情况测试:如硬盘空间不足 13、上传文件速率性能测试:检查上传不同的文件在不同的网络环境响应速度,及系统资源占用 14、上传文件安全性测试:...如上传常见木马 15、上传文件易用性测试:检查上传文件操作是否让用户易于学习和理解使用等 16、上传文件特性测试:如果支持如断点续传等一些特性 17、上传文件后,检查是否与源文件一致,包含目录设置等 18...、上传文件,是否能打开等 对于上传的文件,假设系统要求上传的文件为jpg或gif格式图片,大小为从以下几个方面进行考虑: 1、文件类型正确,文件大小合适的校验

    1.1K20
    领券