如何在 swift 中使用 fileManager.unmountVolume

Posted

技术标签:

【中文标题】如何在 swift 中使用 fileManager.unmountVolume【英文标题】:how to use fileManager.unmountVolume in swift 【发布时间】:2018-04-03 21:23:33 【问题描述】:

我正在尝试快速弹出/卸载 USB 驱动器 我想我必须使用 fileManager.unmountVolume

let urlString = "/Volumes/UNTITLED/".addingPercentEncoding(withAllowedCharacters: .urlUserAllowed)
let url = URL(string: urlString!)

fileManager.unmountVolume(at: url!, options: FileManager.UnmountOptions.init(), completionHandler: (_) in)

如果没有插入驱动器,我没有输出,但是如果插入了驱动器,我得到CFURLCopyResourcePropertyForKey failed because it was passed an URL which has no scheme

【问题讨论】:

【参考方案1】:

urlString 不是 URL 字符串——它是文件系统路径。使用 URL(string:) 从中创建 URL 会导致 URL 不完整。

改用the URL(fileUrlWithPath:) constructor 创建file:// URL。 (在将路径传递给此函数之前,您无需对路径进行百分比编码。)

【讨论】:

谢谢,只是为了清楚这段代码是否正确? fileManager.unmountVolume(at: URL(fileURLWithPath: "/Volumes/UNTITLED"), options: FileManager.UnmountOptions.init(), completionHandler: (_) in)

以上是关于如何在 swift 中使用 fileManager.unmountVolume的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 4 中修改 fileManager url 以指向另一个目录

FileManager MoveItem 回调 - Swift

FileManager.default.contentsOfDirectory 在 swift 3 中失败

使用 Swift 的 FileManager 遍历文件夹及其子文件夹中的文件

使用Swift的FileManager迭代文件夹及其子文件夹中的文件

swift 使用FileManager保存/检索数据