private static bool AddFile2Vault(IEdmVault5 vault, string filePath, out IEdmFile5 edmFile) { edmFile = null; try { IEdmFolder9 parentFolder = vault.GetFolderFromPath(Path.GetDirectoryName(filePath)) as IEdmFolder9; if (parentFolder == null) { //文件夹也是新增的 string fileFolder = Path.GetDirectoryName(filePath).ToLower(); string vaultPath = vault.RootFolderPath.ToLower(); fileFolder = fileFolder.Replace(vault.RootFolderPath.ToLower(), ""); string[] subFolders = fileFolder.Split('/', '\\'); if (!RecursivelyAddFolder(vault, vault.RootFolder, subFolders, out parentFolder)) { return(false); } } int addFileStatus; parentFolder.AddFile2(0, filePath, out addFileStatus, "", (int)EdmAddFlag.EdmAdd_Simple); IEdmFolder5 folder; return(GetFileFromPath(vault, filePath, out edmFile, out folder)); } catch (Exception ex) { return(false); } }
private static bool RecursivelyAddFolder(IEdmVault5 vault, IEdmFolder5 rootFolder, string[] subFolders, out IEdmFolder9 outFolder) { outFolder = null; if (vault == null || rootFolder == null) { return(false); } if (subFolders.Length == 0) { return(true); } IEdmFolder5 tempFolder = rootFolder; try { for (int i = 0; i < subFolders.Length; ++i) { IEdmFolder5 subFolder; string folderPath = Path.Combine(tempFolder.LocalPath, subFolders[i]); subFolder = vault.GetFolderFromPath(folderPath); if (subFolder == null) { subFolder = tempFolder.AddFolder(0, subFolders[i]); if (subFolder == null) { return(false); } } tempFolder = subFolder; } outFolder = tempFolder as IEdmFolder9; return(outFolder != null); } catch (Exception ex) { return(false); } }