我在Mac上使用GUI安装了硬盘。
但是,我想使用终端命令安装硬盘。
如何从Objective-C Cocoa应用程序执行终端命令mount_smbfs
?
NSTask* task = [[NSTask alloc] init];
[task setLaunchPath:@"/sbin/mount_smbfs"];
[task setArguments:[NSArray arrayWithObjects:@"//user:50000@smb://192.168.2.1/Share",@"Volumes/C$/upload", nil]];
[task launch];
这是我用我的代码编辑的,你能帮助我吗?
答案 0 :(得分:3)
您可以将调用包裹在NSTask
中的mount_smbfs
,以便从您的Obj-C程序中执行它:
NSTask* task = [NSTask new];
[task setLaunchPath:@"/sbin/mount_smbfs"];
[task setArguments:[NSArray arrayWithObjects:@"//myUser:myPassword@SERVER/share", @"mountPath", nil]];
在setArguments中,您提供了一个至少包含2个元素的数组:共享的路径和挂载点。
同时检查man mount_smbfs
以获取更多参数选项。
答案 1 :(得分:0)
使用AppleScript执行此操作更简单:
- (BOOL) mount {
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:
@"tell application \"Finder\"\n"
" mount volume \"smb://server.domain/SomeMountPoint\"\n"
"end tell"];
if (!script) {
NSLog(@"Error creating AppleScript object");
return NO;
}
NSDictionary *errorMessage = nil;
NSAppleEventDescriptor *result = [script executeAndReturnError:&errorMessage];
return (BOOL)result;
}
有一些限制:
NSAppleScript
。