You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:22:08