使用空格快速获取真实文件路径

时间:2019-08-24 21:32:52

标签: swift

我一直在尝试使用swift处理文件和文件夹

我正在使用listing all files in a folder recursively with swift中的代码

let url = URL(fileURLWithPath: "/path/to/directory")
var files = [URL]()
if let enumerator = FileManager.default.enumerator(at: url, includingPropertiesForKeys: [.isRegularFileKey], options: [.skipsHiddenFiles, .skipsPackageDescendants]) {
    for case let fileURL as URL in enumerator {
        do {
            let fileAttributes = try fileURL.resourceValues(forKeys:[.isRegularFileKey])
            if fileAttributes.isRegularFile! {
                files.append(fileURL)
            }
        } catch { 
            print(error, fileURL) 
        }
    }
    print(files)
}

在打印文件列表时它可以正常工作,但是结果包含file:///前缀,并且如果文件路径或文件名包含空格,结果将添加“%20”,这会引起一些问题

例如:文件$ _59(7).jpeg,来自上面的代码,路径为file:///Users/kkkk/folder/$_59%20(7).jpeg

阅读时

let data = try Data(contentsOf: URL(fileURLWithPath: filePath))

得到错误:Error Domain=NSCocoaErrorDomain Code=260 "The file “$_59%20(7).jpeg” couldn’t be opened because there is no such file."

我删除了前缀file://,所以现在得到的路径是/Users/kkkk/folder/$_59%20(7).jpeg,

经过测试,我发现如果我手动输入/ Users / kkkk / folder / $ _ 59(7).jpeg

,它会起作用

所以我知道如何获得真实路径/ Users / kkkk / folder / $ _ 59(7).jpeg吗?

0 个答案:

没有答案
相关问题