powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программная упаковка в zip\vb.net
14 сообщений из 14, страница 1 из 1
Программная упаковка в zip\vb.net
    #38705845
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте.
как программно упаковать файл в zip?
есть ли стандартные средства или проверенные сторонние библиотеки?
---
суть:
в textbox1 хранится путь к файлу в формате doc.
его надо запаковать в zip
при нажатии кнопки "Архивировать".
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38705910
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,

Есть библиотеки, более чем одна.
Например SharpZipLib, в NPOI есть Ionic.Zip.dll
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38705976
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706079
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706083
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barkan,
Arm79,

Способ через shell32 почему-то вылетает
ionic.zip не создает архив в папке.
еще способы есть?
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706104
thresher8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оо, очередной оьразчик дизайна от мсу :)) наичная от испольщования ZipPackage вообще не поделу, и заканчивая повсеместными byte[[.

не надо жто использовать.
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706110
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
thresher8,

а что использовать?
мне главное упаковать файл в zip
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706118
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thresher8оо, очередной оьразчик дизайна от мсу :)) наичная от испольщования ZipPackage вообще не поделу, и заканчивая повсеместными byte.
Ты для начала выучи русский язык. Во-вторых, там везде Stream. В-третьих, ZipPackage весьма по делу.

thresher8не надо жто использовать.
Аргументами убил наповал.
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706133
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001Barkan,
Arm79,

Способ через shell32 почему-то вылетает
ionic.zip не создает архив в папке.
еще способы есть?

Какбэ я ничего не говорил про shell32 и ionic. Но если так хочецца, то 7-zip (консольная версия) умет архивировать. Просто передайте через командную строку соответствующие параметры.

Моя еще раз намекать на System.IO.Compression
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706167
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Imports System.IO.Compression
(....)
Dim zipPath As String = "c:\img\photo.png" 
Dim extractPath As String = "c:\zip\photo.zip" 
Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
For Each entry As ZipArchiveEntry In archive.Entries
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName), True)
Next 
End Using 



так?
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706180
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001как программно упаковать файл в zip?
majhool001
Код: vbnet
1.
entry.ExtractToFile


Вы не находите противоречие?

Кроме архивов можно еще работать с файлами: ZipFile.ExtractToDirectory
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706205
Badabum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using Ionic.BZip2;

    public static class Compress
    {
        public static System.Text.Encoding Coding = System.Text.Encoding.UTF8;
        public static string CompressGZip(string text)
        {
            byte[] buffer = Encoding.UTF8.GetBytes(text);
            var memoryStream = new MemoryStream();
            using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress, true))
            {
                gZipStream.Write(buffer, 0, buffer.Length);
            }

            memoryStream.Position = 0;

            var compressedData = new byte[memoryStream.Length];
            memoryStream.Read(compressedData, 0, compressedData.Length);

            var gZipBuffer = new byte[compressedData.Length + 4];
            Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length);
            Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gZipBuffer, 0, 4);
            return Convert.ToBase64String(gZipBuffer);
        }

        /// <summary>
        /// Decompresses the string.
        /// </summary>
        /// <param name="compressedText">The compressed text.</param>
        /// <returns></returns>
        public static string DecompressGZip(string compressedText)
        {
            byte[] gZipBuffer = Convert.FromBase64String(compressedText);
            using (var memoryStream = new MemoryStream())
            {
                int dataLength = BitConverter.ToInt32(gZipBuffer, 0);
                memoryStream.Write(gZipBuffer, 4, gZipBuffer.Length - 4);

                var buffer = new byte[dataLength];

                memoryStream.Position = 0;
                using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
                {
                    gZipStream.Read(buffer, 0, buffer.Length);
                }

                return Coding.GetString(buffer);
            }
        }
        public static string DecompressBZip(String compressedText)
        {
            if (String.IsNullOrEmpty(compressedText)) return String.Empty;
            
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(compressedText);
            compressedText = DecompressBZip(bytes);
            Encoding srcEncodingFormat = Coding;
            Encoding dstEncodingFormat = Coding;
            byte[] originalByteString = srcEncodingFormat.GetBytes(compressedText);
            byte[] convertedByteString = Encoding.Convert(srcEncodingFormat, dstEncodingFormat, originalByteString);
            compressedText = dstEncodingFormat.GetString(convertedByteString);
            return compressedText;
        }
        static string DecompressBZip(byte[] compressedbytes)
        {
            String result;
            MemoryStream m_msBZip2 = new MemoryStream(compressedbytes);
            using (BinaryReader reader = new BinaryReader(m_msBZip2, Coding))
            {
                Int32 size = reader.ReadInt32();

                using (var m_isBZip2 = new BZip2InputStream(m_msBZip2))
                {
                    byte[] bytesUncompressed = new byte[size];
                    m_isBZip2.Read(bytesUncompressed, 0, bytesUncompressed.Length);
                    m_isBZip2.Close();
                    m_msBZip2.Close();

                    result = Coding.GetString(bytesUncompressed, 0, bytesUncompressed.Length);

                    reader.Close();
                }
            }
            return result;
        }
        public static byte[] CompressBZip(string sBuffer)
        {
            byte[] result;
            using (MemoryStream m_msBZip2 = new MemoryStream())
            {
                Int32 size = sBuffer.Length;

                using (BinaryWriter writer = new BinaryWriter(m_msBZip2, Coding))//, System.Text.Encoding.ASCII))
                {
                    writer.Write(size);

                    using (BZip2OutputStream m_osBZip2 = new BZip2OutputStream(m_msBZip2))
                    {
                        m_osBZip2.Write(Coding.GetBytes(sBuffer), 0, sBuffer.Length);
                        m_osBZip2.Close();
                    }

                    writer.Close();
                    result = m_msBZip2.ToArray();

                    m_msBZip2.Close();
                }
            }
            return result;

        }
    }

...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706772
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУthresher8оо, очередной оьразчик дизайна от мсу :)) наичная от испольщования ZipPackage вообще не поделу, и заканчивая повсеместными byte.
Ты для начала выучи русский язык. Во-вторых, там везде Stream. В-третьих, ZipPackage весьма по делу.

thresher8не надо жто использовать.
Аргументами убил наповал.
кстати ZipPackage уже научился работать с директориями включая поддиректории?
...
Рейтинг: 0 / 0
Программная упаковка в zip\vb.net
    #38706843
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpuкстати ZipPackage уже научился работать с директориями включая поддиректории?
ZipArchive умеет.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программная упаковка в zip\vb.net
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]