Hi, ich hab ein Mini-Projekt (eigentlich ein Updater für meine große Anwendung), welches von meiner Anwendung gestartet wird (wenn's ein Update gibt)
und dann stumpf die Dateien vom Server zum Client kopiert. Dabei werden alle vorhandenen Files überschrieben (eigentlich sollen die sogar vorher noch gelöscht
werden, das werd' ich noch einbauen)
Die Methode für's Kopieren müsste nun so laufen, dass sich die Richtextbox korrekt updatet und auch die Progressbar durchläuft (Marquee)
Meine Frage wäre nun, was müsste ich in einen Nebenthread packen, damit das auch so funzt? Ich würde Tippen, das Hinzufügen von Text zur RichTextBox und das Kopieren selbst?
Auf der Form gibt's nur eine RichTextBox und ne ProgressBar, sonst nix weiter.
und dann stumpf die Dateien vom Server zum Client kopiert. Dabei werden alle vorhandenen Files überschrieben (eigentlich sollen die sogar vorher noch gelöscht
werden, das werd' ich noch einbauen)
Die Methode für's Kopieren müsste nun so laufen, dass sich die Richtextbox korrekt updatet und auch die Progressbar durchläuft (Marquee)
Meine Frage wäre nun, was müsste ich in einen Nebenthread packen, damit das auch so funzt? Ich würde Tippen, das Hinzufügen von Text zur RichTextBox und das Kopieren selbst?
VB.NET-Quellcode
- Private Sub CopyAllFilesAndSubfoldersFromSourcepathToDestinationpath(Sourcepath As String, Destinationpath As String)
- 'TODO: Mit Threading arbeiten, damit rtb sich sauber updatet und die Progressbar durchläuft
- ProgressBar1.Visible = True
- If Not Directory.Exists(Destinationpath) Then Directory.CreateDirectory(Destinationpath)
- Dim RootFiles = Directory.GetFiles(Sourcepath)
- For Each FullFilename In RootFiles
- Try
- RichTextBox1.AddRtxt($"Datei ""{FullFilename.LastRightCut("\"c)}"" wird kopiert...")
- File.Copy(FullFilename, $"{Destinationpath}\{FullFilename.LastRightCut("\"c)}", True)
- Catch ex As Exception
- RichTextBox1.AddRtxt($"Fehler für Datei ""{FullFilename.LastRightCut("\"c)} "" {Environment.NewLine}{ex.Message}")
- _ErrorCounter += 1
- End Try
- Next
- Dim SubDirs = Directory.GetDirectories(Sourcepath)
- For Each Foldername In SubDirs
- RichTextBox1.AddRtxt($"{Environment.NewLine}Unterverzeichnis ""{Foldername.LastRightCut("\"c)}"" wird kopiert...")
- CopyAllFilesAndSubfoldersFromSourcepathToDestinationpath(Foldername, $"{Destinationpath}\{Foldername.LastRightCut("\"c)}")
- Next
- ProgressBar1.Visible = False
- End Sub
Auf der Form gibt's nur eine RichTextBox und ne ProgressBar, sonst nix weiter.
"Na, wie ist das Wetter bei dir?"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"
"Caps Lock."
"Hä?"
"Shift ohne Ende!"