Avatar billede aniels21 Nybegynder
20. oktober 2004 - 11:13 Der er 9 kommentarer og
2 løsninger

Hvordan får jeg fat i filnavn ved filoverførsel?

Jeg skal overføre en fil fra en computer til en anden.
Hvordan får jeg fat i den fil som skal overføres' navn?
Jeg skal jo oprette en fil på modtagercomputeren for at kunne skrive til den, og det vil jeg gerne gøre med det korrekte navn. Men hvordan får jg fat i filnavnet før jeg har filen?
Avatar billede sovsekoder Nybegynder
20. oktober 2004 - 11:23 #1
hvis du bruger File.Copy oprettes filen automatisk.

Er det en klient/server applikation? web?
Avatar billede aniels21 Nybegynder
20. oktober 2004 - 11:32 #2
Det er en client/server-satan.

Min server lytter efter forbindelse, laver en FileStream(TotalSti,FileMode).
Herefter har filen så en property der hedder Name, men nu er filen jo så oprettet.
Skal jeg så oprette en ny fil med Name-propertyen og slette den gamle? Det virker lidt fjollet ikke?

Således ser min kode ud:

Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    listener.Bind(new IPEndPoint(IPAddress.Any, 2112));
    listener.Listen(0);

    Socket socket = listener.Accept();
    Stream netStream = new NetworkStream(socket);
    StreamReader reader = new StreamReader(netStream);

    string result = reader.ReadToEnd();
    FileStream file = new FileStream (@"TOTALSTI HER",FileMode.OpenOrCreate);
                StreamWriter sw = new StreamWriter(file);


Er det noget "sovsekode" ;-)?
Og hvor og hvordan ville du bruge File.Copy metoden?
Avatar billede burningice Nybegynder
20. oktober 2004 - 11:46 #3
du kan vel lave serveren sende filnavnet som det første, før selve filen kommer?
Avatar billede aniels21 Nybegynder
20. oktober 2004 - 11:49 #4
cyberfessor>j a, jeg har tænkt på det. Tænkte bare om der mon ikke var en smartere metode. Jeg mener det må være en rimelig standard ting at sende filer mellem computere :-)
Avatar billede arne_v Ekspert
20. oktober 2004 - 11:53 #5
Med sockets må du selv sørge for den slags.

Med en højere level protokol f.eks. HTTP POST, så er der metoder til at få navnet med.
Avatar billede aniels21 Nybegynder
20. oktober 2004 - 11:59 #6
Ok, har nogen et kodeeksempel på det med at sende en string før selve filen?
Smid det som et svar så er der points hvis det virker.

Tak for hjælpen -igen.
Avatar billede arne_v Ekspert
20. oktober 2004 - 12:09 #7
Du bruger StreamWriter & StreamReader ikke ?

De er jo linie orienterede, så du kan jo bare på afsender siden
starte med:

writer.WriteLine(filename);

og på modtage siden starte med:

string filename = reader.ReadLine();

VIGTIGT: StreamReader oG StreamWriter egner sig kun til tekst filer - ikke
til binære filer !
Avatar billede aniels21 Nybegynder
20. oktober 2004 - 12:11 #8
Yup, det er kun xml filer jeg skal sende så det går :-).

Svar fra nogen?
Avatar billede arne_v Ekspert
20. oktober 2004 - 12:14 #9
Jo men jeg synes jo at CF var først på banen med send filnavn først
Avatar billede aniels21 Nybegynder
20. oktober 2004 - 13:02 #10
vil også gerne give ham points
Avatar billede burningice Nybegynder
20. oktober 2004 - 14:35 #11
fair nok... tak for det :)
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