如何从 UIDocumentPicker 获取正确的文件名,didPickDocumentsAt urls: [URL]
How to get correct filename from UIDocumentPicker, didPickDocumentsAt urls: [URL]
我正在尝试获取扩展名为 UIDocumentPickerViewController
的选定文件名,但文件扩展名末尾有“]”。关于什么是正确的方法有什么建议吗?
这是我的代码:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
let filename = URL(fileURLWithPath: String(describing:urls)).lastPathComponent // print: myfile.pdf]
self.pickedFile.append(filename)
// display picked file in a view
self.dismiss(animated: true, completion: nil)
}
urls 是 URL 数组,不是 URL,不是 String
尝试:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
if let filename = urls.first?.lastPathComponent {
self.pickedFile.append(filename)
// display picked file in a view
self.dismiss(animated: true, completion: nil)
}
}
切勿将 String(describing:)
用于调试输出以外的任何内容。您的代码正在生成 URL
个实例数组的调试输出。该输出将类似于:
[file:///some/directory/someFileA.ext,file:///some/directory/otherFile.ext]
当然,无论选择了多少文件,数组输出都会包含。
然后您尝试从 URL
实例数组的调试输出创建文件 URL,然后获取该文件的最后一个路径组件。这就是为什么你得到尾随 ]
.
只需从您想要的数组中访问元素。不要创建新的 URL
.
if let filename = urls.first?.lastPathComponent {
self.pickedFile.append(filename)
}
更好的是,将它们全部添加:
for url in urls {
self.pickedFile.append(url.lastPathComponent)
}
我正在尝试获取扩展名为 UIDocumentPickerViewController
的选定文件名,但文件扩展名末尾有“]”。关于什么是正确的方法有什么建议吗?
这是我的代码:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
let filename = URL(fileURLWithPath: String(describing:urls)).lastPathComponent // print: myfile.pdf]
self.pickedFile.append(filename)
// display picked file in a view
self.dismiss(animated: true, completion: nil)
}
urls 是 URL 数组,不是 URL,不是 String
尝试:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
if let filename = urls.first?.lastPathComponent {
self.pickedFile.append(filename)
// display picked file in a view
self.dismiss(animated: true, completion: nil)
}
}
切勿将 String(describing:)
用于调试输出以外的任何内容。您的代码正在生成 URL
个实例数组的调试输出。该输出将类似于:
[file:///some/directory/someFileA.ext,file:///some/directory/otherFile.ext]
当然,无论选择了多少文件,数组输出都会包含。
然后您尝试从 URL
实例数组的调试输出创建文件 URL,然后获取该文件的最后一个路径组件。这就是为什么你得到尾随 ]
.
只需从您想要的数组中访问元素。不要创建新的 URL
.
if let filename = urls.first?.lastPathComponent {
self.pickedFile.append(filename)
}
更好的是,将它们全部添加:
for url in urls {
self.pickedFile.append(url.lastPathComponent)
}