Example #1
0
        public SetupFile(string fileName, string baseFolder = null)
        {
            if (System.IO.File.Exists(fileName))
            {
                File = Path.GetFileName(fileName);

                if (Path.GetExtension(fileName).Equals(".exe", StringComparison.InvariantCultureIgnoreCase) ||
                    Path.GetExtension(fileName).Equals(".dll", StringComparison.InvariantCultureIgnoreCase))
                {
                    FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileName);
                    Version     = new Base.Version(fvi.FileVersion ?? "0.0.0.0");
                    Description = fvi.FileDescription ?? Path.GetFileNameWithoutExtension(fileName);
                }
                else
                {
                    Version     = new Base.Version();
                    Description = Path.GetExtension(fileName).ToLower() + " FILE";
                }
                FileInfo fi = new FileInfo(fileName);
                Size = fi.Length;

                CreationTime = IO.FileCreationTime(fileName);
                MD5          = IO.MD5(fileName);

                if (string.IsNullOrEmpty(baseFolder))
                {
                    baseFolder = Path.GetDirectoryName(fileName);
                }
                if (!baseFolder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    baseFolder += Path.DirectorySeparatorChar;
                }

                if (fileName.StartsWith(baseFolder, StringComparison.InvariantCultureIgnoreCase))
                {
                    if (Path.GetDirectoryName(fileName).Length > baseFolder.Length)
                    {
                        Folder = Path.GetDirectoryName(fileName).Substring(baseFolder.Length);
                    }
                    else
                    {
                        Folder = "";
                    }
                }
                else
                {
                    Folder = baseFolder;
                }
            }
        }
Example #2
0
 public bool Assign(object value)
 {
     if (value is SetupFile v)
     {
         File         = v.File;
         Version      = (Base.Version)v.Version.Clone();
         Description  = v.Description;
         MD5          = v.MD5;
         Size         = v.Size;
         CreationTime = v.CreationTime;
         Folder       = v.Folder;
         FileFlags    = v.FileFlags;
         return(true);
     }
     return(false);
 }
Example #3
0
        /// <summary>
        /// Cria instância de FileEntry a partir de informações
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="basePath"></param>
        /// <param name="md5"></param>
        /// <param name="fileTime"></param>
        /// <param name="fileSize"></param>
        public FileEntry(string fileName, string basePath, string md5, DateTime fileTime, long fileSize, object version)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("fileName");
            }
            if (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0)
            {
                throw new ArgumentException("Invalid fileName");
            }
            if (!IO.IsMD5(md5))
            {
                throw new ArgumentException("Invalid md5");
            }
            if (fileSize <= 0)
            {
                throw new ArgumentOutOfRangeException("fileSize", "must be 0 or greater");
            }
            if (version != null)
            {
                if (version is string)
                {
                    _version = new Base.Version((string)version);
                }
                else if (version is Base.Version)
                {
                    _version = (Base.Version)((Base.Version)version).Clone();
                }
                else if (version is System.Version)
                {
                    _version = new Base.Version(((System.Version)version).ToString());
                }
            }

            FileName  = fileName;
            BasePath  = basePath ?? throw new ArgumentNullException("basePath");
            _md5      = md5;
            _fileTime = fileTime;
            _size     = fileSize;
        }