/// <summary> /// 【7】将文件复制到指定路径(硬盘)——导出 /// </summary> /// <param name="PathInVault">库文件夹根目录下相对路径</param> /// <param name="PathOutVault">本地具体路径</param> public static void CheckoutAndCopy(string PathInVault, string PathOutVault) { try { EdmVault5 vault = new EdmVault5(); vault.Login(LogName, PWD, VaultName); IEdmFile5 file = default(IEdmFile5); IEdmFolder5 folder = null; file = vault.GetFileFromPath(vault.RootFolderPath + PathInVault, out folder);//读取指定文件的位置,PathInVault库文件夹根目录下相对路径 file.LockFile(folder.ID, new System.Windows.Forms.Control().Handle.ToInt32()); file.UndoLockFile(new System.Windows.Forms.Control().Handle.ToInt32(), true); //Copy the file IEdmEnumeratorVersion5 verEnum = default(IEdmEnumeratorVersion5); verEnum = (IEdmEnumeratorVersion5)file; int Version = 0; Version = file.GetLocalVersionNo(folder.ID); IEdmVersion5 ver = default(IEdmVersion5); ver = verEnum.GetVersion(Version); ver.GetFileCopy(new System.Windows.Forms.Control().Handle.ToInt32(), PathOutVault);//PathOutVault本地具体路径 } catch (System.Runtime.InteropServices.COMException ex) { if (ex.ErrorCode.ToString() == "-2147220949") { MessageBox.Show("The selected file is not located in a file vault."); } else { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void GetVars_Click(System.Object sender, System.EventArgs e) { try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { //Log into selected vault as the current user vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } IEdmFile5 aFile = default(IEdmFile5); IEdmFolder5 ppoRetParentFolder = null; aFile = vault2.GetFileFromPath(ListBox.Items[0].ToString(), out ppoRetParentFolder); //Get card variables only from a file checked into the vault if (!aFile.IsLocked) { aFile.LockFile(vault2.RootFolderID, this.Handle.ToInt32(), (int)EdmLockFlag.EdmLock_Simple); IEdmEnumeratorVariable5 varEnum = default(IEdmEnumeratorVariable5); varEnum = aFile.GetEnumeratorVariable(); object[] valueList = null; varEnum.GetUpdateVars(aFile.LockedInFolderID, out valueList); int idx = 0; idx = Information.LBound(valueList); int upper = 0; upper = Information.UBound(valueList); string msg = null; msg = "Card variables for " + aFile.Name + " in configuration, @:" + Constants.vbLf + Constants.vbLf; IEdmVariableMgr5 varMgr = default(IEdmVariableMgr5); varMgr = (IEdmVariableMgr5)aFile.Vault; IEdmVariable5 var = default(IEdmVariable5); IEdmVariableValue6 value = default(IEdmVariableValue6); while (idx <= upper) { value = (IEdmVariableValue6)valueList[idx]; idx = idx + 1; var = varMgr.GetVariable(value.VariableID); msg = msg + value.VariableName + " = > " + value.GetValue("@").ToString() + Constants.vbLf; msg = msg + "EdmVariableFlags: " + var.Flags + ", EdmVariableType: " + var.VariableType + Constants.vbLf + Constants.vbLf; //msg = msg & "EdmVariableFlags: " & value.VariableFlags & ", EdmVariableType: " & value.VariableType & vbLf & vbLf } MessageBox.Show(msg); aFile.UndoLockFile(this.Handle.ToInt32()); } else { //User selected a checked-out file MessageBox.Show("Please select a checked-in file."); } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }