Пример #1
0
        public void Test()
        {
            for (int i = 0; i < testfiles.Length; i++)
            {
                string  location = Path.Combine(Consts.TestFilesRoot, "filesystems", "eafs_mbr", testfiles[i]);
                IFilter filter   = new LZip();
                filter.Open(location);
                IMediaImage image = new Vdi();
                Assert.AreEqual(true, image.Open(filter), testfiles[i]);
                Assert.AreEqual(sectors[i], image.Info.Sectors, testfiles[i]);
                Assert.AreEqual(sectorsize[i], image.Info.SectorSize, testfiles[i]);
                List <Partition> partitions = Core.Partitions.GetAll(image);
                IFilesystem      fs         = new SysVfs();
                int part = -1;
                for (int j = 0; j < partitions.Count; j++)
                {
                    if (partitions[j].Type == "XENIX")
                    {
                        part = j;
                        break;
                    }
                }

                Assert.AreNotEqual(-1, part, $"Partition not found on {testfiles[i]}");
                Assert.AreEqual(true, fs.Identify(image, partitions[part]), testfiles[i]);
                fs.GetInformation(image, partitions[part], out _, null);
                Assert.AreEqual(clusters[i], fs.XmlFsType.Clusters, testfiles[i]);
                Assert.AreEqual(clustersize[i], fs.XmlFsType.ClusterSize, testfiles[i]);
                Assert.AreEqual(type[i], fs.XmlFsType.Type, testfiles[i]);
                Assert.AreEqual(volumename[i], fs.XmlFsType.VolumeName, testfiles[i]);
                Assert.AreEqual(volumeserial[i], fs.XmlFsType.VolumeSerial, testfiles[i]);
            }
        }
Пример #2
0
        public void Test()
        {
            for (int i = 0; i < _testFiles.Length; i++)
            {
                string  location = Path.Combine(Consts.TEST_FILES_ROOT, "Filesystems", "HAMMER (MBR)", _testFiles[i]);
                IFilter filter   = new LZip();
                filter.Open(location);
                IMediaImage image = new Vdi();
                Assert.AreEqual(true, image.Open(filter), _testFiles[i]);
                Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]);
                Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]);
                List <Partition> partitions = Core.Partitions.GetAll(image);
                IFilesystem      fs         = new HAMMER();
                int part = -1;

                for (int j = 0; j < partitions.Count; j++)
                {
                    if (partitions[j].Type == "Hammer")
                    {
                        part = j;

                        break;
                    }
                }

                Assert.AreNotEqual(-1, part, $"Partition not found on {_testFiles[i]}");
                Assert.AreEqual(true, fs.Identify(image, partitions[part]), _testFiles[i]);
                fs.GetInformation(image, partitions[part], out _, null);
                Assert.AreEqual(_clusters[i], fs.XmlFsType.Clusters, _testFiles[i]);
                Assert.AreEqual(_clusterSize[i], fs.XmlFsType.ClusterSize, _testFiles[i]);
                Assert.AreEqual("HAMMER", fs.XmlFsType.Type, _testFiles[i]);
                Assert.AreEqual(_volumeName[i], fs.XmlFsType.VolumeName, _testFiles[i]);
                Assert.AreEqual(_volumeSerial[i], fs.XmlFsType.VolumeSerial, _testFiles[i]);
            }
        }
Пример #3
0
 public void Test()
 {
     for (int i = 0; i < testfiles.Length; i++)
     {
         string  location = Path.Combine(Consts.TestFilesRoot, "filesystems", "dtfs", testfiles[i]);
         IFilter filter   = new LZip();
         filter.Open(location);
         IMediaImage image = new ZZZRawImage();
         Assert.AreEqual(true, image.Open(filter), testfiles[i]);
         Assert.AreEqual(mediatypes[i], image.Info.MediaType, testfiles[i]);
         Assert.AreEqual(sectors[i], image.Info.Sectors, testfiles[i]);
         Assert.AreEqual(sectorsize[i], image.Info.SectorSize, testfiles[i]);
         IFilesystem fs        = new SysVfs();
         Partition   wholePart = new Partition
         {
             Name   = "Whole device",
             Length = image.Info.Sectors,
             Size   = image.Info.Sectors * image.Info.SectorSize
         };
         Assert.AreEqual(true, fs.Identify(image, wholePart), testfiles[i]);
         fs.GetInformation(image, wholePart, out _, null);
         Assert.AreEqual(clusters[i], fs.XmlFsType.Clusters, testfiles[i]);
         Assert.AreEqual(clustersize[i], fs.XmlFsType.ClusterSize, testfiles[i]);
         Assert.AreEqual(type[i], fs.XmlFsType.Type, testfiles[i]);
         Assert.AreEqual(volumename[i], fs.XmlFsType.VolumeName, testfiles[i]);
         Assert.AreEqual(volumeserial[i], fs.XmlFsType.VolumeSerial, testfiles[i]);
     }
 }
Пример #4
0
 public void Test()
 {
     for (int i = 0; i < testfiles.Length; i++)
     {
         string  location = Path.Combine(Consts.TestFilesRoot, "partitions", "atari", testfiles[i]);
         IFilter filter   = new LZip();
         filter.Open(location);
         IMediaImage image = new Vdi();
         Assert.AreEqual(true, image.Open(filter), testfiles[i]);
         List <Partition> partitions = Core.Partitions.GetAll(image);
         Assert.AreEqual(wanted[i].Length, partitions.Count, testfiles[i]);
         for (int j = 0; j < partitions.Count; j++)
         {
             // Too chatty
             //Assert.AreEqual(wanted[i][j].PartitionDescription, partitions[j].PartitionDescription, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Size, partitions[j].Size, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Name, partitions[j].Name, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Type, partitions[j].Type, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Offset, partitions[j].Offset, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Length, partitions[j].Length, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Sequence, partitions[j].Sequence, testfiles[i]);
             Assert.AreEqual(wanted[i][j].Start, partitions[j].Start, testfiles[i]);
         }
     }
 }
Пример #5
0
        public void Info()
        {
            Environment.CurrentDirectory = _dataFolder;

            Assert.Multiple(() =>
            {
                for (int i = 0; i < _testFiles.Length; i++)
                {
                    var filter = new LZip();
                    filter.Open(_testFiles[i]);

                    var image   = new ZZZRawImage();
                    bool opened = image.Open(filter);

                    Assert.AreEqual(true, opened, $"Open: {_testFiles[i]}");

                    if (!opened)
                    {
                        continue;
                    }

                    using (new AssertionScope())
                    {
                        Assert.Multiple(() =>
                        {
                            Assert.AreEqual(_sectors[i], image.Info.Sectors, $"Sectors: {_testFiles[i]}");
                            Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, $"Sector size: {_testFiles[i]}");
                            Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, $"Media type: {_testFiles[i]}");
                        });
                    }
                }
            });
        }
Пример #6
0
 public void Test()
 {
     for (int i = 0; i < testfiles.Length; i++)
     {
         string  location = Path.Combine(Consts.TestFilesRoot, "filesystems", "iso9660", testfiles[i]);
         IFilter filter   = new LZip();
         filter.Open(location);
         IMediaImage image = new ZZZRawImage();
         Assert.AreEqual(true, image.Open(filter), $"{testfiles[i]}: Open()");
         Assert.AreEqual(mediatypes[i], image.Info.MediaType, $"{testfiles[i]}: MediaType");
         Assert.AreEqual(sectors[i], image.Info.Sectors, $"{testfiles[i]}: Sectors");
         Assert.AreEqual(sectorsize[i], image.Info.SectorSize, $"{testfiles[i]}: SectorSize");
         IFilesystem fs        = new ISO9660();
         Partition   wholePart = new Partition
         {
             Name   = "Whole device",
             Length = image.Info.Sectors,
             Size   = image.Info.Sectors * image.Info.SectorSize
         };
         Assert.AreEqual(true, fs.Identify(image, wholePart), $"{testfiles[i]}: Identify()");
         fs.GetInformation(image, wholePart, out _, null);
         Assert.AreEqual(clusters[i], fs.XmlFsType.Clusters, $"{testfiles[i]}: Clusters");
         Assert.AreEqual(clustersize[i], fs.XmlFsType.ClusterSize, $"{testfiles[i]}: ClusterSize");
         Assert.AreEqual("ISO9660", fs.XmlFsType.Type, $"{testfiles[i]}: Type");
         Assert.AreEqual(volumename[i], fs.XmlFsType.VolumeName, $"{testfiles[i]}: VolumeName");
         Assert.AreEqual(volumeserial[i], fs.XmlFsType.VolumeSerial, $"{testfiles[i]}: VolumeSerial");
         Assert.AreEqual(sysid[i], fs.XmlFsType.SystemIdentifier,
                         $"{testfiles[i]}: SystemIdentifier");
         Assert.AreEqual(appid[i], fs.XmlFsType.ApplicationIdentifier,
                         $"{testfiles[i]}: ApplicationIdentifier");
     }
 }
Пример #7
0
        public void Test()
        {
            for (int i = 0; i < _testFiles.Length; i++)
            {
                string location = Path.Combine(Consts.TEST_FILES_ROOT, "Filesystems", "XENIX filesystem",
                                               _testFiles[i]);

                IFilter filter = new LZip();
                filter.Open(location);
                IMediaImage image = new ZZZRawImage();
                Assert.AreEqual(true, image.Open(filter), _testFiles[i]);
                Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]);
                Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]);
                Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]);
                IFilesystem fs = new SysVfs();

                var wholePart = new Partition
                {
                    Name   = "Whole device",
                    Length = image.Info.Sectors,
                    Size   = image.Info.Sectors * image.Info.SectorSize
                };

                Assert.AreEqual(true, fs.Identify(image, wholePart), _testFiles[i]);
                fs.GetInformation(image, wholePart, out _, null);
                Assert.AreEqual(_clusters[i], fs.XmlFsType.Clusters, _testFiles[i]);
                Assert.AreEqual(_clusterSize[i], fs.XmlFsType.ClusterSize, _testFiles[i]);
                Assert.AreEqual(_type[i], fs.XmlFsType.Type, _testFiles[i]);
                Assert.AreEqual(_volumeName[i], fs.XmlFsType.VolumeName, _testFiles[i]);
                Assert.AreEqual(_volumeSerial[i], fs.XmlFsType.VolumeSerial, _testFiles[i]);
            }
        }
Пример #8
0
 public void Test()
 {
     for (int i = 0; i < _testFiles.Length; i++)
     {
         string  location = Path.Combine(Consts.TEST_FILES_ROOT, "Device test dumps", "JAZ", _testFiles[i]);
         IFilter filter   = new LZip();
         filter.Open(location);
         IMediaImage image = new ZZZRawImage();
         Assert.AreEqual(true, image.Open(filter), _testFiles[i]);
         Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]);
         Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]);
         Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]);
     }
 }
Пример #9
0
 public void Test()
 {
     for (int i = 0; i < testfiles.Length; i++)
     {
         string  location = Path.Combine(Consts.TestFilesRoot, "devices", "ls120", testfiles[i]);
         IFilter filter   = new LZip();
         filter.Open(location);
         IMediaImage image = new ZZZRawImage();
         Assert.AreEqual(true, image.Open(filter), testfiles[i]);
         Assert.AreEqual(mediatypes[i], image.Info.MediaType, testfiles[i]);
         Assert.AreEqual(sectors[i], image.Info.Sectors, testfiles[i]);
         Assert.AreEqual(sectorsize[i], image.Info.SectorSize, testfiles[i]);
     }
 }
Пример #10
0
        public void Init()
        {
            location = Path.Combine(Consts.TestFilesRoot, "filesystems", "fatx16", "be", "microsoft256mb.img.lz");
            filter   = new LZip();
            filter.Open(location);
            image = new ZZZRawImage();
            Assert.AreEqual(true, image.Open(filter));
            fs = new XboxFatPlugin();
            List <Partition> partitions = Core.Partitions.GetAll(image);

            Assert.AreEqual(2, partitions.Count);
            dataPartition = partitions[1];
            Errno error = fs.Mount(image, dataPartition, null, null, null);

            Assert.AreEqual(Errno.NoError, error);
        }
Пример #11
0
        public void Init()
        {
            location = Path.Combine(Consts.TestFilesRoot, "filesystems", "fatx16", "le", "fatx.img.lz");
            filter   = new LZip();
            filter.Open(location);
            image = new ZZZRawImage();
            Assert.AreEqual(true, image.Open(filter));
            fs = new XboxFatPlugin();

            wholePart = new Partition
            {
                Name = "Whole device", Length = image.Info.Sectors, Size = image.Info.Sectors * image.Info.SectorSize
            };

            Errno error = fs.Mount(image, wholePart, null, null, null);

            Assert.AreEqual(Errno.NoError, error);
        }
Пример #12
0
        public void Init()
        {
            _location = Path.Combine(Consts.TEST_FILES_ROOT, "Filesystems", "Xbox FAT16", "be",
                                     "microsoft256mb.img.lz");

            _filter = new LZip();
            _filter.Open(_location);
            _image = new ZZZRawImage();
            Assert.AreEqual(true, _image.Open(_filter));
            _fs = new XboxFatPlugin();
            List <Partition> partitions = Core.Partitions.GetAll(_image);

            Assert.AreEqual(2, partitions.Count);
            _dataPartition = partitions[1];
            Errno error = _fs.Mount(_image, _dataPartition, null, null, null);

            Assert.AreEqual(Errno.NoError, error);
        }
Пример #13
0
        /// <summary>
        /// Determines the corresponding algorithm instance by evaluating the specified archive type.
        /// </summary>
        /// <param name="value">The enum value of the archive type.</param>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when archive type matched no algorithm.</exception>
        /// <returns>An instance of the compression algorithm that matches the specified value.</returns>
        internal static ICompressionAlgorithm DetermineAlgorithm(ArchiveType value)
        {
            ICompressionAlgorithm algorithm;

            switch (value)
            {
            case ArchiveType.Zip:
                algorithm = new Zip();
                break;

            case ArchiveType.GZip:
                algorithm = new GZip();
                break;

            case ArchiveType.BZip2:
                algorithm = new BZip2();
                break;

            case ArchiveType.LZip:
                algorithm = new LZip();
                break;

            case ArchiveType.Tar:
                algorithm = new Tar();
                break;

            case ArchiveType.TarGz:
                algorithm = new TarGzip();
                break;

            case ArchiveType.TarBz2:
                algorithm = new TarBzip2();
                break;

            case ArchiveType.TarLz:
                algorithm = new TarLzip();
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(value), value, null);
            }
            return(algorithm);
        }
Пример #14
0
        public void Test()
        {
            for (int i = 0; i < _testFiles.Length; i++)
            {
                string location = Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "DiskCopy 4.2",
                                               _testFiles[i]);

                IFilter filter = new LZip();
                filter.Open(location);
                IMediaImage image = new DiscImages.DiskCopy42();
                Assert.AreEqual(true, image.Open(filter), _testFiles[i]);
                Assert.AreEqual(_sectors[i], image.Info.Sectors, _testFiles[i]);
                Assert.AreEqual(_sectorSize[i], image.Info.SectorSize, _testFiles[i]);
                Assert.AreEqual(_mediaTypes[i], image.Info.MediaType, _testFiles[i]);

                // How many sectors to read at once
                const uint sectorsToRead = 256;
                ulong      doneSectors   = 0;

                var ctx = new Md5Context();

                while (doneSectors < image.Info.Sectors)
                {
                    byte[] sector;

                    if (image.Info.Sectors - doneSectors >= sectorsToRead)
                    {
                        sector       = image.ReadSectors(doneSectors, sectorsToRead);
                        doneSectors += sectorsToRead;
                    }
                    else
                    {
                        sector       = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors));
                        doneSectors += image.Info.Sectors - doneSectors;
                    }

                    ctx.Update(sector);
                }

                Assert.AreEqual(_md5S[i], ctx.End(), _testFiles[i]);
            }
        }
Пример #15
0
        public void Init()
        {
            _location = Path.Combine(Consts.TEST_FILES_ROOT, "Filesystems", "Xbox FAT16", "le", "fatx.img.lz");
            _filter   = new LZip();
            _filter.Open(_location);
            _image = new ZZZRawImage();
            Assert.AreEqual(true, _image.Open(_filter));
            _fs = new XboxFatPlugin();

            _wholePart = new Partition
            {
                Name   = "Whole device",
                Length = _image.Info.Sectors,
                Size   = _image.Info.Sectors * _image.Info.SectorSize
            };

            Errno error = _fs.Mount(_image, _wholePart, null, null, null);

            Assert.AreEqual(Errno.NoError, error);
        }
Пример #16
0
        public void Test()
        {
            for (int i = 0; i < testfiles.Length; i++)
            {
                string  location = Path.Combine(Consts.TestFilesRoot, "images", "2mg", testfiles[i]);
                IFilter filter   = new LZip();
                filter.Open(location);
                IMediaImage image = new DiscImages.Apple2Mg();
                Assert.AreEqual(true, image.Open(filter), testfiles[i]);
                Assert.AreEqual(sectors[i], image.Info.Sectors, testfiles[i]);
                Assert.AreEqual(sectorsize[i], image.Info.SectorSize, testfiles[i]);
                Assert.AreEqual(mediatypes[i], image.Info.MediaType, testfiles[i]);

                // How many sectors to read at once
                const uint SECTORS_TO_READ = 256;
                ulong      doneSectors     = 0;

                Md5Context ctx = new Md5Context();

                while (doneSectors < image.Info.Sectors)
                {
                    byte[] sector;

                    if (image.Info.Sectors - doneSectors >= SECTORS_TO_READ)
                    {
                        sector       = image.ReadSectors(doneSectors, SECTORS_TO_READ);
                        doneSectors += SECTORS_TO_READ;
                    }
                    else
                    {
                        sector       = image.ReadSectors(doneSectors, (uint)(image.Info.Sectors - doneSectors));
                        doneSectors += image.Info.Sectors - doneSectors;
                    }

                    ctx.Update(sector);
                }

                Assert.AreEqual(md5S[i], ctx.End(), testfiles[i]);
            }
        }
Пример #17
0
 public void Test()
 {
     for (int i = 0; i < testfiles.Length; i++)
     {
         string  location = Path.Combine(Consts.TestFilesRoot, "filesystems", "hpfs", testfiles[i]);
         IFilter filter   = new LZip();
         filter.Open(location);
         IMediaImage image = new Vdi();
         Assert.AreEqual(true, image.Open(filter), testfiles[i]);
         Assert.AreEqual(sectors[i], image.Info.Sectors, testfiles[i]);
         Assert.AreEqual(sectorsize[i], image.Info.SectorSize, testfiles[i]);
         List <Partition> partitions = Core.Partitions.GetAll(image);
         IFilesystem      fs         = new HPFS();
         Assert.AreEqual(true, fs.Identify(image, partitions[0]), testfiles[i]);
         fs.GetInformation(image, partitions[0], out _, null);
         Assert.AreEqual(clusters[i], fs.XmlFsType.Clusters, testfiles[i]);
         Assert.AreEqual(clustersize[i], fs.XmlFsType.ClusterSize, testfiles[i]);
         Assert.AreEqual("HPFS", fs.XmlFsType.Type, testfiles[i]);
         Assert.AreEqual(volumename[i], fs.XmlFsType.VolumeName, testfiles[i]);
         Assert.AreEqual(volumeserial[i], fs.XmlFsType.VolumeSerial, testfiles[i]);
         Assert.AreEqual(oemid[i], fs.XmlFsType.SystemIdentifier, testfiles[i]);
     }
 }
Пример #18
0
        private void ShowFile(ref string folderReport, ref string fileReport, bool isOpenFile, FileBase fileResponse, MethodInfo mi, List <ThamSoBaoCao> listThamSoBaoCao)
        {
            try
            {
                if (fileResponse.FileFormat.Equals(ApplicationConstant.LoaiDinhDangBaoCao.TEXT.layGiaTri()))
                {
                    fileReport = folderReport + "\\" + fileResponse.FileName;
                }
                else
                {
                    fileReport = folderReport + "\\" + fileResponse.FileName + "." + fileResponse.FileFormat;
                }

                LFile.WriteFileFromByteArray(fileResponse.FileData, fileReport);
                if (isOpenFile)
                {
                    // show file
                    if (fileResponse.FileFormat == "rar")
                    {
                        LZip.UnZipFiles(fileReport, folderReport, "ng-mFina", false);
                        string format     = "";
                        string loaiThamSo = ApplicationConstant.LoaiThamSoBaoCao.FORMAT.layGiaTri();
                        format = listThamSoBaoCao.Where(item => item.LoaiThamSo.Equals(loaiThamSo)).FirstOrDefault().GiaTriThamSo;
                        string originalFormat = "";
                        if (format.Equals(ApplicationConstant.LoaiDinhDangBaoCao.PDF.layGiaTri()))
                        {
                            originalFormat = "pdf";
                        }
                        else if (format.Equals(ApplicationConstant.LoaiDinhDangBaoCao.EXCEL.layGiaTri()))
                        {
                            originalFormat = "xls";
                        }
                        else if (format.Equals(ApplicationConstant.LoaiDinhDangBaoCao.WORD.layGiaTri()))
                        {
                            originalFormat = "doc";
                        }
                        else if (format.Equals(ApplicationConstant.LoaiDinhDangBaoCao.TEXT.layGiaTri()))
                        {
                            originalFormat = "txt";
                        }
                        else
                        {
                            originalFormat = "pdf";
                        }
                        string originalFileReport = ClientInformation.TempDir + "\\" + fileResponse.FileName + "." + originalFormat;
                        //Stream stream = LFile.ConvertByteArrayToStream(fileResponse.FileData);
                        Mouse.OverrideCursor = Cursors.Arrow;
                        System.Diagnostics.Process.Start(originalFileReport);
                    }
                    else
                    {
                        //Stream stream = LFile.ConvertByteArrayToStream(fileResponse.FileData);
                        Mouse.OverrideCursor = Cursors.Arrow;

                        if (fileResponse.FileFormat.Equals(ApplicationConstant.LoaiDinhDangBaoCao.TEXT.layGiaTri()))
                        {
                            //OnShowResult
                            if (uc != null)
                            {
                                mi = uc.GetType().GetMethod("OnShowResult");
                                //Object[] paras = new Object[] { fileReport};
                                object retShowResult = mi.Invoke(uc, new Object[] { fileReport });
                            }
                        }
                        else
                        {
                            System.Diagnostics.Process.Start(fileReport);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                Mouse.OverrideCursor = Cursors.Arrow;
                CommonFunction.ThongBaoLoi(ex);
                LLogging.WriteLog(System.Reflection.MethodInfo.GetCurrentMethod().ToString(), LLogging.LogType.ERR, ex);
            }
        }