Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        private void SearchFiles(IEdmVault5 vault, object Val1)
        {
            try

            {
                IEdmSearch5 search = null;
                IEdmFolder5 folder = null;

                folder = vault.GetFolderFromPath(@"C:\CDI Controlled Documents\drawings\part drawings- controlled");

                search               = vault.CreateSearch();
                search.FileName      = "%.%d%w%";
                search.StartFolderID = folder.ID;

                object Var1  = "Part Numbers";
                object State = "Approved for Production";


                search.AddVariable(Var1, Val1);

                search.set_State(State);
                search.FindHistoricStates = false;
                search.Recursive          = true;

                String message = string.Empty;



                List <IEdmSearchResult5> results = new List <IEdmSearchResult5>();

                IEdmSearchResult5 result = search.GetFirstResult();

                while (result != null)

                {
                    results.Add(result);
                    result = search.GetNextResult();
                }
                results = results.Distinct(new SearchResultComparer()).ToList();
                if (results.Count < 1)
                {
                    search.Clear();
                    search.FileName      = Val1 + ".%d%w%";
                    search.StartFolderID = folder.ID;
                    State = "Approved for Production";
                    search.set_State(State);
                    search.FindHistoricStates = false;
                    search.Recursive          = true;

                    result = search.GetFirstResult();
                    while (result != null)

                    {
                        results.Add(result);
                        result = search.GetNextResult();
                    }
                    results = results.Distinct(new SearchResultComparer()).ToList();
                }
                foreach (IEdmSearchResult5 item in results)
                {
                    //get latest version
                    IEdmFile5   file      = null;
                    IEdmFolder5 retFolder = default(IEdmFolder5);
                    file = vault.GetFileFromPath(item.Path, out retFolder);
                    file.GetFileCopy(0);
                    //System.Diagnostics.Process.Start(item.Path, @"C:\Program Files\SOLIDWORKS Corp\eDrawings\eDrawings.exe");
                    //OpenEdwg(item.Path);
                    OpenSaveSldrwPdf(item.Path);



                    message = message + "Filename: " + item.Name + ", Rev: " + file.CurrentRevision + "; \n";
                }



                MessageBox.Show(message);
            }



            catch (Exception ex)

            {
                MessageBox.Show(ex.Message);
            }
        }