在ESX上用SDK(c#)的CreateFolder方法
ALCAT 2011-08-05 05:14:42 想在ESX上用SDK(c#)的CreateFolder方法创建新的文件夹 ,发现有个老外写的比较详细
The CreateFolder() method needs to be called from either the vmFolder (VM/template view) or hostFolder (host/cluster view). You first need to get a reference to specific datacenter you want to create the folder and then from there you can get access to vmFolder or hostFolder as seen from datacenter managed object: http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/vim.Datacenter.html
下面是代码:
// Get The Data Center. "ha-datacenter" is the name of the datacenter
ManagedObjectReference dcmor
= GetDecendentMoRef(null, "Datacenter", "ha-datacenter");
//ManagedObjectReference vmFolderMor
// = (ManagedObjectReference)GetDynamicProperty(dcmor, "vmFolder");
//MessageBox.Show("vmFolderMor.type " + vmFolderMor.type);
//MessageBox.Show("vmFolderMor.Value " + vmFolderMor.Value);
// Default Host
ManagedObjectReference hostFolderMor
= (ManagedObjectReference)GetDynamicProperty(dcmor, "hostFolder");
MessageBox.Show("hostFolderMor.type " + hostFolderMor.type);
MessageBox.Show("hostFolderMor.Value " + hostFolderMor.Value);
if (hostFolderMor == null)
{
MessageBox.Show("The parent folder does no exist!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
// However, when debugged here, it return an error " The operation is not supported on the object."
if ((_service.CreateFolder(hostFolderMor, "UBUNTEST")) == null)
{
MessageBox.Show("Folder created failed!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
但是无论是vmFolder或者hostFolder,在执行到 CreateFolder()的时候就报错"The operation is not supported on the object."。
想不明白,但是确实是用这个方法才行,不解。。。
很急,求高人指点!!!
或者能给个用HTTP协议在远程服务器上创建文件夹得方法也行,不胜感激!