Avatar billede pablopablo Nybegynder
17. marts 2005 - 18:03 Der er 13 kommentarer og
1 løsning

Winrar og Zip

Hejsa...

Kan man pakke en zip eller rar fil ud via C#?

Mvh. PabloPablo
Avatar billede arne_v Ekspert
17. marts 2005 - 18:06 #1
ZIP no problem - hent SharpZipLib komponentetn og så kører det

RAR - måske et problem
Avatar billede arne_v Ekspert
17. marts 2005 - 18:06 #2
Avatar billede pablopablo Nybegynder
17. marts 2005 - 18:42 #3
Super ;) spurgte kun efter rar pga. det kan komprimeres mere end zip...
Avatar billede arne_v Ekspert
17. marts 2005 - 18:45 #4
så ligger jeg et svar
Avatar billede pablopablo Nybegynder
20. marts 2005 - 00:14 #5
hvilken metode bruger du når du skal udpakke en zip  fil...?
Avatar billede arne_v Ekspert
20. marts 2005 - 00:30 #6
Eksempel:

using System;
using System.Collections;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;

class MainClass
{
    public static void Main(string[] args)
    {
        ZipFile zf = new ZipFile(@"C:\temp\test.zip");
        IEnumerator e = zf.GetEnumerator();
        while(e.MoveNext())
        {
            ZipEntry ze = (ZipEntry)e.Current;
            Stream istm = zf.GetInputStream(ze);
            Stream ostm = new FileStream(@"C:\temp\" + ze.Name, FileMode.CreateNew, FileAccess.Write);
            int size = (int)ze.Size;
            byte[] b = new byte[size];
            istm.Read(b, 0, size);
            ostm.Write(b, 0, size);
        }
        zf.Close();
    }
}
Avatar billede arne_v Ekspert
20. marts 2005 - 00:31 #7
Eksemplet forudsætter at al data kan være i memory. Ellers skal der lige
en while løkke mere ind.
Avatar billede pablopablo Nybegynder
20. marts 2005 - 01:19 #8
ok, mange tak for det...det var også noget i den duer jeg var gået i gang med, men havde ikke fået det til at spille endnu...

når skal jeg ikke pakke meget store filer ud...men det kunne måske være meget godt at have med for en sikkerhedsskyld...hvordan vil den ekstra løkke se ud i dette tilfælde..?
Avatar billede arne_v Ekspert
20. marts 2005 - 11:20 #9
using System;
using System.Collections;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;

class MainClass
{
    public static void Main(string[] args)
    {
        ZipFile zf = new ZipFile(@"C:\temp\test.zip");
        IEnumerator e = zf.GetEnumerator();
        while(e.MoveNext())
        {
            ZipEntry ze = (ZipEntry)e.Current;
            Stream istm = zf.GetInputStream(ze);
            Stream ostm = new FileStream(@"C:\temp\" + ze.Name, FileMode.CreateNew, FileAccess.Write);
            byte[] b = new byte[100000];
            int n;
            while((n = istm.Read(b, 0, b.Length)) > 0)
            {
                ostm.Write(b, 0, n);
            }
        }
        zf.Close();
    }
}
Avatar billede pablopablo Nybegynder
20. marts 2005 - 18:19 #10
jamen, virker jo :) mange tak for det!! læg et svar og få endnu en gang dine fortjente points ;)
Avatar billede arne_v Ekspert
20. marts 2005 - 18:21 #11
Dem har jeg fået for lang tid siden ...
Avatar billede pablopablo Nybegynder
20. marts 2005 - 19:45 #12
hehe, ja det er da også rigtigt ;)
Avatar billede pablopablo Nybegynder
23. marts 2005 - 14:36 #13
jeg tænkte på, kan den også udpakke filer som er beskyttet med et password ...? og i så fald, hvordan ser det ud...?
Avatar billede arne_v Ekspert
23. marts 2005 - 15:34 #14
Ingen anelse.

Prøv og læs docs på SharpZipLib !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester