如何从UIDocumentPickerViewController获取导出时用户设置的保存文件名
获取UIDocumentPickerViewController保存后的文件名
要获取用户设置的新文件名,你需要实现UIDocumentPickerDelegate协议,具体操作如下:
设置代理
在初始化UIDocumentPickerViewController后,给它指定代理:UIDocumentPickerViewController* documentPicker = [[UIDocumentPickerViewController alloc] initForExportingURLs:@[theTempFileURL] asCopy:YES]; documentPicker.delegate = self; // 确保当前控制器遵循UIDocumentPickerDelegate协议 [self presentViewController:documentPicker animated:true completion:nil];遵循协议并实现核心代理方法
首先在控制器的类扩展或头文件中声明遵循协议:@interface YourViewController () <UIDocumentPickerDelegate> @end然后实现
documentPicker:didPickDocumentsAtURLs:方法,从返回的URL中提取用户设置的文件名:- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls { if (urls.count > 0) { NSURL *finalSavedURL = urls.firstObject; // 获取带扩展名的完整文件名 NSString *savedFileName = finalSavedURL.lastPathComponent; // 若需不带扩展名的文件名,可使用以下代码 // NSString *fileNameWithoutExtension = [finalSavedURL.deletingPathExtension lastPathComponent]; NSLog(@"用户选择的保存文件名:%@", savedFileName); // 在此处进行文件名的后续处理 } }可选:处理用户取消操作
如果需要响应用户取消保存的场景,实现以下代理方法:- (void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller { // 处理取消逻辑 }
说明:代理方法返回的finalSavedURL是文件保存后的最终路径,通过lastPathComponent属性即可直接获取用户自定义的新文件名。
内容的提问来源于stack exchange,提问作者david ralley
相关产品推荐
相关产品推荐

