Esempio n. 1
0
        // ----------------------------------------------------------------------------------------------

        public static IDiskEntity GetEntity(string pEntityPath, string pArchivedPath, IReportWriter pReportWriter)
        {
            IDiskEntity diskEntity = null;

            if (pReportWriter == null)
            {
                pReportWriter = new NullReportWriter();
            }

            switch (DiskEntityBase.GetEntityType(pEntityPath))
            {
            case DiskEntityType.Folder:
                diskEntity = new DiskEntityFolder(pEntityPath, pArchivedPath, pReportWriter);
                break;

            case DiskEntityType.AddonFolder:
                diskEntity = new DiskEntityAddonFolder(pEntityPath, pArchivedPath, pReportWriter);
                break;

            case DiskEntityType.Archive:
                diskEntity = new DiskEntityArchive(pEntityPath, pArchivedPath, pReportWriter);
                break;

            case DiskEntityType.SketchupFile:
                diskEntity = new DiskEntitySketchup(pEntityPath, pArchivedPath, pReportWriter);
                break;

            case DiskEntityType.AddonFile:
                diskEntity = new DiskEntityAddon(pEntityPath, pArchivedPath, pReportWriter);
                break;
            }

            return(diskEntity);
        }
Esempio n. 2
0
        protected static DiskEntityType GetEntityType(string pEntityPath, out string pAbsolutePath, out string pName)
        {
            DiskEntityType diskEntityType = DiskEntityType.Unknown;

            pAbsolutePath = pName = null;

            try
            {
                if (File.Exists(pEntityPath))
                {
                    string extension = Path.GetExtension(pEntityPath);
                    switch (extension?.Trim().ToLower())
                    {
                    case ".addon":
                        diskEntityType = DiskEntityType.AddonFile;
                        break;

                    case ".zip":
                    case ".rar":
                    case ".7z":
                        diskEntityType = DiskEntityType.Archive;
                        break;

                    case ".skp":
                        diskEntityType = DiskEntityType.SketchupFile;
                        break;

                    default:
                        return(DiskEntityType.Unknown);
                    }
                }
                else if (Directory.Exists(pEntityPath))
                {
                    diskEntityType =
                        DiskEntityFolder.IsAddonFolder(pEntityPath)
                            ? DiskEntityType.AddonFolder
                            : DiskEntityType.Folder;
                }
                else
                {
                    return(DiskEntityType.Unknown);
                }

                pAbsolutePath = Path.GetFullPath(pEntityPath);
                pName         = Path.GetFileName(pEntityPath);
            }
            catch // (Exception exception)
            {
                diskEntityType = DiskEntityType.Unknown;
            }

            return(diskEntityType);
        }