我正在尝试找到一种在我正在创建的Cocoa应用程序中安装SMB共享的方法,但是所有文档都指向FSMountServerVolumeSync但是当我将它放入我的代码时出现错误
' FSMountServerVolumeSync'不可用:从OS X 10.9及更早版本中弃用的API在Swift中不可用
我发现了一些关于旧替代品的信息--DADiskMount但我不知道这是否是合适的替代品,也不知道如何实施它。
现在有一种Swift方式来安装适用于最新版Swift的SMB共享吗?
答案 0 :(得分:2)
因此,对于寻找答案的人来说,似乎没有Apple提供的文档,但经过多次搜索后我发现NetFS.framework仍然非常有效并且有望得到支持。
一旦我将NetFS框架包含在Swift文件中并进行了游戏,一切都按预期工作。
include Coco
include NetFS
func mountShare( serverAddress: String, shareName: String, userName: String, password: String) {
let fm = NSFileManager.defaultManager()
let mountPoint = "/Volumes/".stringByAppendingString(shareName)
var isDir : ObjCBool = false
if fm.fileExistsAtPath(mountPoint, isDirectory:&isDir) {
if isDir {
unmount(mountPoint, 0)
println("unmount \(mountPoint)")
}
}
let sharePath = NSURL(string: "\(serverAddress)/\(shareName)")!
let mounted: Int32 = NetFSMountURLSync(sharePath, nil, userName, self.decodeStr(password), nil, nil, nil)
if mounted > 0 {
println("Error: sharePath: \(sharePath) Not Valid")
} else {
println("Mounted: \(sharePath)")
}
}