Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS, GZipStream - че не так?  [new]
RegisteredUser
Member

Откуда:
Сообщений: 578
Коллеги!

Появилась насущная необходимости архивировать внутри SSIS один файлик.
Задача есть архивировать файл как бы стандартными средствами винды (без внешних архиваторов типа winrar и т.п.)

Погуглил.
Заюзал вот этот пример: https://msdn.microsoft.com/ru-ru/library/system.io.compression(v=vs.100).aspx

Типа усё работает, НО полученный архив НЕ открывается в винде.

пробовал и GZipStream и DeflateStream.

Че Не так?

К сообщению приложен файл. Размер - 8Kb
12 окт 17, 12:32    [20863685]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
скопируйте ваш код в проект VS консольного приложения и отладьтесь.
сказать, что у вас там не так не видя вашего кода невозможно.
а вопросы по .net лучше в соответствующий форум.
12 окт 17, 12:41    [20863730]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
RegisteredUser,

поищите примеры работы с Shell.Application.
12 окт 17, 12:44    [20863750]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
RegisteredUser
Member

Откуда:
Сообщений: 578
Дедушка
скопируйте ваш код в проект VS консольного приложения и отладьтесь.
сказать, что у вас там не так не видя вашего кода невозможно.
а вопросы по .net лучше в соответствующий форум.



   public static void Compress(FileInfo fi)
    {
        // Get the stream of the source file.
        using (FileStream inFile = fi.OpenRead())
        {
            // Prevent compressing hidden and already compressed files.
            if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden)
                != FileAttributes.Hidden & fi.Extension != ".zip")
            {
                // Create the compressed file.
                using (FileStream outFile = 
                        File.Create(fi.FullName + ".zip"))
                {
                    using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
                    {
                        inFile.CopyTo(Compress);
                    }


                    // - это тоже НЕ открывается, хоть и создает архив
                    //using (DeflateStream Compress = new DeflateStream(outFile, CompressionMode.Compress))
                    //{
                    //    // Copy the source file into the compression stream.
                    //    inFile.CopyTo(Compress);

                    //    //Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                    //    // fi.Name, fi.Length.ToString(), outFile.Length.ToString());
                    //}


                }
            }
        }
    }
12 окт 17, 14:49    [20864356]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
aleks222
Guest
RegisteredUser
Коллеги!

Появилась насущная необходимости архивировать внутри SSIS один файлик.
Задача есть архивировать файл как бы стандартными средствами винды (без внешних архиваторов типа winrar и т.п.)

Погуглил.
Заюзал вот этот пример: https://msdn.microsoft.com/ru-ru/library/system.io.compression(v=vs.100).aspx

Типа усё работает, НО полученный архив НЕ открывается в винде.

пробовал и GZipStream и DeflateStream.

Че Не так?


Надо архив - пользуй архив

System.IO.Compression.ZipArchive($compressedStream, [System.IO.Compression.ZipArchiveMode]::Read)
12 окт 17, 21:06    [20865662]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
RegisteredUser
Member

Откуда:
Сообщений: 578
aleks222
RegisteredUser
Коллеги!

Появилась насущная необходимости архивировать внутри SSIS один файлик.
Задача есть архивировать файл как бы стандартными средствами винды (без внешних архиваторов типа winrar и т.п.)

Погуглил.
Заюзал вот этот пример: https://msdn.microsoft.com/ru-ru/library/system.io.compression(v=vs.100).aspx

Типа усё работает, НО полученный архив НЕ открывается в винде.

пробовал и GZipStream и DeflateStream.

Че Не так?


Надо архив - пользуй архив

System.IO.Compression.ZipArchive($compressedStream, [System.IO.Compression.ZipArchiveMode]::Read)


да самому бы хотелось, но эта фича кажись только с Framework 4.5
а у меня этого пока нема

К сообщению приложен файл. Размер - 3Kb
17 окт 17, 14:44    [20876202]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
aleks222
Guest
.Net 4.5 есть у всех. От него не так-то просто увернуться.

Я, вот, тоже думал "нету". Перерыл интырнет весь...
Херня оказалось.

Add-Type -assembly "System.IO.Compression.Filesystem"

и фсе заработало.

ЗЫ. Альтернативы, особо, нету. Ибо если хотишь файл архива - это еще и заголовки.

Add-Type -assembly "System.IO.Compression"
Add-Type -assembly "System.IO.Compression.Filesystem"

[string] $s = "UEsDBBQAAAAIANpVB0vZUj+RPAEAAC8HAAAHAAAAWmlwRGF0Yb2VUWvCMBDH3wf7DqUPvs201m2gsdJONoTWSYuy11BjDWsTSaLVb2/sdFQi7CXrS7j75y7Jj7skcHwoC2uPuSCMjmy369hj//EBBpyj4+c6wbnSLRVDxeAgViN7I+V2AEBVVd3K6zKeg57juOArjtJsg0tk/waTv4OfCBUS0Qzbak/Lgj/b1bbyZqjEfqeQw6AoOrkcQlArl9npxH+BQI0Xf4JFxslWnhcIF9FHkEwDCJpqY9kISQtchTe2wn4QRRDUVkO9CVtQkimtmbejkh/VEfrn1KtTk4AGyj2sEFHxzTSinmsQKZy1SrTjORIakWcSKGkTKGZU9SbSiNxXk30Xt1qkecH2K7LXmJ4NEs1bvUhpyQqCqF4lr2+QKY1bZWJrovedUZ73NnmWiN+5Rz2DPMt/ehkguPkI/RNQSwECFAAUAAgACADaVQdL2VI/kTwBAAAvBwAABwAAAAAAAAAAAAAAAAAAAAAAWmlwRGF0YVBLBQYAAAAAAQABADUAAABhAQAAAAA="

[byte[]] $x = [System.Convert]::FromBase64String($s)

$compressedStream = New-Object System.IO.MemoryStream(,$x)

$zip = New-Object System.IO.Compression.ZipArchive($compressedStream, [System.IO.Compression.ZipArchiveMode]::Read)

$readEntry = $zip.GetEntry("ZipData")

$entryStream = $readEntry.Open()
17 окт 17, 16:00    [20876531]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, GZipStream - че не так?  [new]
Eleanor
Member

Откуда:
Сообщений: 2632
RegisteredUser
да самому бы хотелось, но эта фича кажись только с Framework 4.5
а у меня этого пока нема

Можете взять сторонную библиотеку, например SharpZipLib. Если, конечно, относите это к стандартным средствам винды.
Она есть для NET 1.1, .NET 2.0 (3.5, 4.0).
У меня она в одной CLR используется, работает нормально.
17 окт 17, 23:29    [20877642]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить