public SqlDumpReader(string filePath)
        {
            string fileExtension = Path.GetExtension(filePath).ToLower();

            if (!SUPPORTED_DUMP_FILE_EXTENSIONS.Contains(fileExtension))
            {
                throw new Exception($"{fileExtension} is not in the list of supported database dump file extensions.");
            }
            switch (fileExtension.ToLower())
            {
            case ".zip":
                zipArchive = ZipArchive.Open(filePath);
                ZipArchiveEntry firstZipArchiveEntry = zipArchive.Entries.First();
                FileSize     = firstZipArchiveEntry.Size;
                streamReader = new StreamReader(firstZipArchiveEntry.OpenEntryStream());
                break;

            case ".rar":
                rarArchive = RarArchive.Open(filePath);
                RarArchiveEntry firstRarArchiveEntry = rarArchive.Entries.First();
                FileSize     = firstRarArchiveEntry.Size;
                streamReader = new StreamReader(firstRarArchiveEntry.OpenEntryStream());
                break;

            case ".gz":
                gZipArchive = GZipArchive.Open(filePath);
                GZipArchiveEntry firstGZipArchiveEntry = gZipArchive.Entries.First();
                FileSize     = firstGZipArchiveEntry.Size;
                streamReader = new StreamReader(firstGZipArchiveEntry.OpenEntryStream());
                break;

            case ".7z":
                sevenZipArchive = SevenZipArchive.Open(filePath);
                SevenZipArchiveEntry firstSevenZipArchiveEntry = sevenZipArchive.Entries.First();
                FileSize     = firstSevenZipArchiveEntry.Size;
                streamReader = new StreamReader(new PositioningStream(firstSevenZipArchiveEntry.OpenEntryStream()));
                break;

            default:
                FileSize     = new FileInfo(filePath).Length;
                streamReader = new StreamReader(filePath);
                break;
            }
            CurrentFilePosition = 0;
        }
Exemple #2
0
        public SqlDumpReader(string filePath)
        {
            string fileExtension = Path.GetExtension(filePath);

            switch (fileExtension.ToLower())
            {
            case ".zip":
                zipArchive = ZipArchive.Open(filePath);
                ZipArchiveEntry firstZipArchiveEntry = zipArchive.Entries.First();
                FileSize     = firstZipArchiveEntry.Size;
                streamReader = new StreamReader(firstZipArchiveEntry.OpenEntryStream());
                break;

            case ".rar":
                rarArchive = RarArchive.Open(filePath);
                RarArchiveEntry firstRarArchiveEntry = rarArchive.Entries.First();
                FileSize     = firstRarArchiveEntry.Size;
                streamReader = new StreamReader(firstRarArchiveEntry.OpenEntryStream());
                break;

            case ".gz":
                gZipArchive = GZipArchive.Open(filePath);
                GZipArchiveEntry firstGZipArchiveEntry = gZipArchive.Entries.First();
                FileSize     = firstGZipArchiveEntry.Size;
                streamReader = new StreamReader(firstGZipArchiveEntry.OpenEntryStream());
                break;

            case ".7z":
                sevenZipArchive = SevenZipArchive.Open(filePath);
                SevenZipArchiveEntry firstSevenZipArchiveEntry = sevenZipArchive.Entries.First();
                FileSize     = firstSevenZipArchiveEntry.Size;
                streamReader = new StreamReader(firstSevenZipArchiveEntry.OpenEntryStream());
                break;

            default:
                FileSize     = new FileInfo(filePath).Length;
                streamReader = new StreamReader(filePath);
                break;
            }
            CurrentFilePosition = 0;
        }