Avatar billede gonnemand Nybegynder
07. juni 2008 - 14:48 Der er 6 kommentarer og
1 løsning

Overføre en hel mappe over netværk?

Hej.

I stedet for at overføre alle enkelt filerne i en mappe, på en server, kan det så ikke lade sig gøre at overføre hele mappen, og undermapper?

Synes det er voldsomt at bruge remoting til overførelse af filer, så hvad bruger man normalt?
Avatar billede arne_v Ekspert
07. juni 2008 - 14:55 #1
Enten skal du selv kode noget eller så skal du finde noget der er allerede er kodet til det.

Remoting er ikke specielt velegnet til fil overførsel.

Plain sockets eller HTTP var mere oplagte.
Avatar billede gonnemand Nybegynder
07. juni 2008 - 15:01 #2
Okay, tænkte jeg også nok.

Du skulle vel ikke have eksempler på det, eller links til det?
Avatar billede arne_v Ekspert
07. juni 2008 - 20:40 #3
Socket er ret simpelt.

client:

        TcpClient cli = new TcpClient("localhost", 1234);
        Stream nstm = cli.GetStream();
        Stream fstm = new FileStream(@"C:\z.1", FileMode.Open, FileAccess.Read);
        byte[] b = new byte[10000];
        int n;
        while((n = fstm.Read(b, 0, b.Length)) > 0)
        {
            nstm.Write(b, 0, n);
        }
        nstm.Close();
        fstm.Close();
        cli.Close();


server:

        TcpListener srv = new TcpListener(IPAddress.Any, 1234);
        srv.Start();
        TcpClient cli = srv.AcceptTcpClient();
        Stream nstm = cli.GetStream();
        Stream fstm = new FileStream(@"C:\z.2", FileMode.CreateNew, FileAccess.Write);
        byte[] b = new byte[10000];
        int n;
        while((n = nstm.Read(b, 0, b.Length)) > 0)
        {
            fstm.Write(b, 0, n);
        }
        nstm.Close();
        fstm.Close();
        cli.Close();
        srv.Stop();
Avatar billede gonnemand Nybegynder
08. juni 2008 - 09:23 #4
Takker :-)

Så mangler jeg bare at kunne overføre hele mapper gennem det.
Avatar billede arne_v Ekspert
08. juni 2008 - 16:55 #5
Directory.GetFiles og en løkke der overfører en fil ad gangen.
Avatar billede moykal Nybegynder
12. juni 2008 - 20:14 #6
Eller zip'e skidtet sammen i en stream, med f.eks. GZipStream (http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx) og så drible den stream over når vi nu er ved det. Eller?
Avatar billede arne_v Ekspert
29. august 2008 - 02:37 #7
all set ?
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