C# Datei kopieren

Gast #3915785
Lesenswert?

Hallo, ich möchte eine Datei kopieren, aber ohne File.Copy(). Ich möchte 
nämlich den "Text" der Datei haben. Ich habe es bereits so versucht:
1
OpenFileDialog ofd = new OpenFileDialog();
2
            ofd.ShowDialog();
3
            SaveFileDialog sfd = new SaveFileDialog();
4
            sfd.ShowDialog();
5
            StreamWriter sw = File.CreateText(sfd.FileName);
6
            path = ofd.FileName;
7
            StreamReader sr = new StreamReader(new FileStream(path, FileMode.Open));
8
            while (sr.Peek() != -1)
9
            {
10
                data = sr.ReadLine();
11
                sw.WriteLine(data);
12
            }
13
            sr.Close();
14
            sw.Close();
So kopiert er wohl die Daten, aber die Datei kann dann nicht mehr 
geöffnet werden, weil sie nicht richtig kopiert wurden und dadurch 
teilweise zeilenverschoben sind.
Gast #3915850
Lesenswert?

Soweit ich weiß ist das UTF16.
Ich habe es jetzt noch mal so versucht:
1
data = sr.ReadToEnd();
2
            sw.WriteLine(data);
Da sind beide Dateien identisch, trotzdem kann die kopierte nicht 
geöffnet werden.
Gast #3915888
Lesenswert?

... die üblichen Scherereien mit der Zeichenkodierung ... außerdem 
solltest du deinen StreamWriter nicht WriteLine aufrufen lassen, wenn du 
schon den Reader den ganzen Dateiinhalt einlesen lässt. Probier's mal 
damit:
1
            StreamWriter sw = new StreamWriter("C:\\copytest.txt", false, System.Text.Encoding.Default);
2
            StreamReader sr = new StreamReader("C:\\test.txt", System.Text.Encoding.Default);
3
            sw.Write(sr.ReadToEnd());
4
            sr.Close();
5
            sw.Close();
Wenn das nicht klappt, spiel' an den Einstellungen 
"System.Text.Encoding.Default" herum. Man weiß ja nicht, wie deine 
Dateien codiert sind und welche Einstellungen dein Computer hat.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren