首页
学习
活动
专区
工具
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类来获取修改文件属性、如何使用文件流操作来实现属性访问等。

32620

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

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

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

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

    1.4K60

    iOS断点续传

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

    1.6K30

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

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

    1.3K50

    Java 文件下载案例讲解

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

    39120

    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();上例功能是一样的。

    88420

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

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

    1.5K10

    【QT】qt 文件操作

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

    14910

    ifstream java_使用ifstream :: seekgtellg获取文件大小

    当我尝试获取文件大小时,我有以下块来测试seekgtellg的行为: 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 ?

    95630

    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.5K00

    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进行数据处理与分析》教程!

    71510

    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...,可以只录像或只播放,如果同时录像播放,只需要一个拉流实例来完成。​

    25800

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

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

    24911

    何在React Native中添加自定义字体

    一旦项目已经启动,我们将继续获取我们想要使用的字体。我们将讨论如何导入它们并在我们的项目中使用它们。...让我们看看输出: 在Expo中使用自定义字体的React Native 在这一部分,我们将学习如何在Expo中使用自定义字体。...Expo 支持两种字体格式,OTF TTF,这两种格式在 iOS、Android Web上都能稳定运行。如果你的字体是其他格式,你将需要进行高级配置。...然后, fonts 文件夹获取并复制字体文件到你的机器和你的项目中,如下所示: 在你的 App.js 文件中,粘贴以下代码: import { useFonts } from "expo-font";...总结 本文所探讨的,将自定义字体集成到React Native应用程序中不仅仅是技术上的提升,更是一种改善用户体验的策略性方法。

    52310

    Linux中查找工具的友好替代方案

    ; -depth:指定目录下最深层的子目录开始查找; -expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录; -exec:假设find指令的回传值为True...格式可以自行指定; -prune:不寻找字符串作为寻找文件或目录的范本样式; -regex:指定字符串作为寻找文件或目录的范本样式; -size:查找符合指定的文件大小的文件;...它涵盖了如何在macOS、 Debian/Ubuntu Red Hat Arch Linux 上安装程序。...安装完成后,你可以通过运行帮助来获得所有可用命令行选项的完整概述,通过 fd -h 获取简明帮助,或者通过 fd –help 获取更详细的帮助。...例如,要查找当前目录中文件名中包含 services 的所有文件,可以使用: $ fd -tf services downloads/services.md 以及,找到当前目录中文件名中包含 services

    4.5K10

    文件上传下载测试点

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

    1K20
    领券