ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
40803
40803
EMPFEHLEN
-
02.08.05 18:22 #1
Hallo,
Habe mal ein kleines Programm geschrieben, welches Dateien kopieren soll.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
void COPY_Click(object sender, System.EventArgs e) { string path = Convert.ToString(textBox.Text); string path2 = Convert.ToString(textBox2.Text); try { //Kopieren der Datei. File.Copy(path, path2); this.textBox3.Text = "{0} wurde kopiert nach {1}.", path, path2; } catch { } }
Nun mein Problem: Wenn ich Dateien mit dem Programm kopiere, z.B. Textdateien ist die Kopie im Zielverzeichnis aber leer, im eigentlichen Textdokumkent befindet sich aber Text. Auch wenn ich z.B. eine Anwendung (Setup.exe) kopiere und die Kopie im Zielverzeichnis ausführe, sagt mir 'ne Fehlermeldung, dass es keine gültige Win32 Anwendung wäre oder so was. Also er kopiert immer nur die Datei, aber nicht den Inhalt.
Kann mir jemand helfen? Für Code wäre ich sehr Dankbar!
Danke schon mal im Vorraus!
MfG. Alexander12
-
VS 2005 Beta2:
System.IO.File.Copy("C:\\test.png", "C:\\testcopy.png");
geht.
Evtl ist der Name der SourceFile falsch?Für einen ist es Windows, für den anderen die größte Batch-Datei der Welt...
-
Achja sorry sehe gerade deinen leeren Try-Catch-Block

Also ich machs immer so, dass ich erst meine Funktion fertige schreibe und teste, bevor ich einen Catch-Block rumsetze. Natürlich kann ich es auch gleich machen und dann einen evtl. Fehler über eine MessageBox ausgeben, aber ich mach es halt erst immer am schluss mit vernünftigem Loggingsystem. Wie dem auch sei;
Du hast da irgendwo einen Fehler in deiner Zeile, evtl. keine Zugriffsrechte im Zielverzeichnis, Quell-Datei nicht vorhanden, etc.
Also machst du jetzt, um zu gucken was los ist, den try-catch-Block raus, oder du sagst am Ende:
Code :1 2 3 4
catch (Exception ex) { MessageBox.Show(ex.Message); }
Dann weißt du auch, was los ist
Gruß, NRFFür einen ist es Windows, für den anderen die größte Batch-Datei der Welt...
-
04.08.05 18:41 #4
Danke NRFi,
Jetzt funktioniert es!
MfG. Alexander12
-
Hi,
1. Könntest du bitte noch die Lösung für dein Problem posten? Es ist nämlich noch nicht so ganz klar, an was es nun lag.
und 2.
Wieso konvertierst du den Wert von Ctrl.Text noch in einen String? Der Text-Member ist doch schon ein String.Code :1 2
string path = Convert.ToString(textBox.Text); string path2 = Convert.ToString(textBox2.Text);
Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
05.08.05 10:34 #6
Hy niggo,
1.)Die Lösung des Problems war:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
void COPY_Click(object sender, System.EventArgs e) { string path = Convert.ToString(textBox.Text); //Pfad wo sich die Datei befindet string path2 = Convert.ToString(textBox2.Text); //Pfad wo die Datei hin soll try { //Kopieren der Datei. System.IO.File.Copy(path, path2); MessageBox.Show("Kopieren erfolgreich!"); } catch { MessageBox.Show("Kopieren fehlgeschlagen!"); } }
Natürlich hab' ich oben noch
Code :1
using System.IO;
eingebunden!
2.)In die TextBoxen sollte die im Code beschriebenen Pfade eingeben. Diese werden dann in 'nen String konvertiert für das System.IO.File.Copy(path, path2). Soll ja nicht jedes Mal die gleiche Datei kopiert werden.
Gruß Alexander12
-
05.08.05 17:44 #7
Hab' noch Mal 'ne Frage:
Kann ich da eigentlich auch noch 'ne ProgressBar in mein Form machen, dass den Fortschritt anzeigt, weil bei großen Dateien bleibt das Form hängen ...
Kann man die Datei z.B. in 2 MB große Stücke teilen, die das Programm nacheinander kopiert un dann im Zielordner wieder zusammensetzt?
Hab' auch schon was von Threading gehört und auch schon im Forum gesucht, habe aber nichts gefunden.
Hat jemand ein paar Codefetzen, die mir helfen könnten?
MfG Alexander12
-
ProgressBar? Thread?
Ok, hätt ich ne sehr gute Idee. Mach aber bitte einen neuen Thread dafür auf.
Hab jetzt aber Feierabend. Antworte dann Montag oder WE wenn ich kann.
MfG, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
05.08.05 18:34 #9
ok cosmo,
Dann mal los! Hier geht's weiter
MfG Alexander12
-
Ja, mag ja sein, dass du nicht immer di selbe Datei kopieren willst, das spielt ja keine Rolle. Ich wollte wissen, warum du Textbox.Text nochmal als String Konvertierst. Wie bereits erwähnt, ist Text bereits ein String.
Zitat von Alexander12
Also:
CODE]
...
File.Copy(textbox1.Text, textbox2.Text);
...
[/CODE]
reicht vollkommen aus.
Die zusätzliche Konvertierung von String in String, ist 1. zienlich unnötig und 2. kann sowas ziemlichen Overhead erzeugen. Wenn du das immer machst, kann es vorallem in großen Projekten, in denen es auch auf Performance ankommt, einige Einbußen verursachen.
Für ein kleines Programm wie dieses, ist es halb so wild, es war mir nur aufgefallen, dass du aus Brot Brot machst
Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
06.08.05 12:46 #11
Hi niggo,
Danke für die Info! Bin wohl auf dem Schlauch gestanden ...
Hätt ich auch selber drauf kommen können ...
MfG Alexander12
Ähnliche Themen
-
Files copy to other File
Von celloman im Forum JavaAntworten: 3Letzter Beitrag: 15.01.08, 09:27 -
Exception bei File.Delete nach File.Copy - Wie umgehen?
Von Asterix-Ac im Forum .NET DatenverwaltungAntworten: 5Letzter Beitrag: 06.12.07, 14:23 -
File Copy Problem
Von PoNr im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 27.12.04, 11:49 -
File Copy
Von Kussilein im Forum PHPAntworten: 2Letzter Beitrag: 04.11.04, 13:02 -
file name bei @copy
Von hurtmeplenty im Forum PHPAntworten: 1Letzter Beitrag: 21.05.03, 10:01





Zitieren

Login




