none
Ordner löschen, Ordner verschieben

    Frage

  • Ich habe 2 Probleme:
    1. Ich möchte ein DeInstaller machen, welcher den Ordner(Pfad) löscht, mitsammt inhalt
    2. Ich möchte ein Programm machen, welches mir den Ordner(Pfad(FTP)) auf eine Ftp ein Backup macht.
    3. Es wäre gut, wenn die 2 automatisch startet wenn man windows startet, also meine 3. Frage wie mach ich das

    LG Yves Riedener
    Donnerstag, 18. März 2010 17:52

Antworten

Alle Antworten

  • Hallo Yves,
    zu 1.) findest Du alles in My.Computer.Filesystem object


    http://msdn.microsoft.com/de-de/library/0b485hf7.aspx

    schöne Grüße
    Ellen

    please, mark this as answer if it is THE answer -- best regards Ellen
    Donnerstag, 18. März 2010 21:03
  • Danke für die Antwort, zu 1 ist es hilfreich aber die 2 und 3 sind mir fast wichtiger

    LG Yves Riedener
    Freitag, 19. März 2010 17:55
  • Ja gerne
    LG Yves Riedener
    Samstag, 20. März 2010 09:19
  •  

    Danke für den Code, ich habe ihn hier ein bisschen geändert, da manchmal ein Absatz war, wo keiner sein dürfte:

    Imports System.Net
    
    Public Class Form1
        '*************************
        'Code mady by Ellen Ramcke
    '************************* Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork WebClient = New Net.WebClient() If File.Exists(My.Application.Info.DirectoryPath + "\DirectoryList.txt") Then File.Delete(My.Application.Info.DirectoryPath + "\DirectoryList.txt") End If If File.Exists(path + "\list.txt") Then File.Delete(path + "\list.txt") End If My.Computer.Network.DownloadFile(Host + "DirectoryList.txt", My.Application.Info.DirectoryPath + "\DirectoryList.txt") Threading.Thread.Sleep(300) Dim Folders() As String = File.ReadAllLines(My.Application.Info.DirectoryPath + "\DirectoryList.txt(") For Each f As String In Folders If Not Directory.Exists(path + f) Then Directory.CreateDirectory(path + f) End If Next My.Computer.Network.DownloadFile(Host + "list.txt", path + "\list.txt") Dim Lines() As String = IO.File.ReadAllLines(path + "\list.txt") progmax = Lines.Count * 100 Dim linees As String() = IO.File.ReadAllLines(path + "\list.txt") For i As Integer = 0 To linees.Count - 1 Try Dim DataArray() As String = Split(linees(i), ";") If IO.File.Exists(path + DataArray(1).Remove(DataArray(1).Count - 3, 3)) Then Dim File As New IO.FileInfo(path + DataArray(1)) If Not File.Length = DataArray(2) Then File.Delete() actualfile = DataArray(3) WebClient.DownloadFileAsync(New Uri(Host + DataArray(0)), path + DataArray(1)) End If Else actualfile = DataArray(3) WebClient.DownloadFileAsync(New Uri(Host + DataArray(0)), path + DataArray(1)) End If Catch End Try addpercent += 100 Next End Sub Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged ProgressBar1.Maximum = progmax End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted Button3.Enabled = True Button3.Text = "Installieren" Me.Text = "Download Complete" End Sub Sub DownloadProgress(ByVal sender As System.Net.WebClient, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles WebClient.DownloadProgressChanged Me.Text = "Download: " + actualfile + e.ProgressPercentage.ToString + "%" ProgressBar2.Value = e.ProgressPercentage ProgressBar1.Value = addpercent + e.ProgressPercentage End Sub End Class

    Ausser dem Habe ich das System.Net importiert, hat aber keinen grossen einfluss es treten noch folgende fehlermeldungen auf:

    Fehler    1    "WebClient" ist ein Typ und kann nicht als Ausdruck verwendet werden.
    Fehler    2    Der Name "File" wurde nicht deklariert.
    Fehler    3    Der Name "File" wurde nicht deklariert.
    Fehler    4    Der Name "File" wurde nicht deklariert.
    Fehler    5    Der Name "path" wurde nicht deklariert.
    Fehler    6    Der Name "File" wurde nicht deklariert.
    Fehler    7    Der Name "path" wurde nicht deklariert.
    Fehler    8    Der Name "Host" wurde nicht deklariert.
    Fehler    9    Der Name "File" wurde nicht deklariert.
    Fehler    10    Der Name "Directory" wurde nicht deklariert.
    Fehler    11    Der Name "path" wurde nicht deklariert.
    Fehler    12    Der Name "Directory" wurde nicht deklariert.
    Fehler    13    Der Name "path" wurde nicht deklariert.
    Fehler    14    Der Name "Host" wurde nicht deklariert.
    Fehler    15    Der Name "path" wurde nicht deklariert.
    Fehler    16    Der Name "path" wurde nicht deklariert.
    Fehler    17    Der Name "progmax" wurde nicht deklariert.
    Fehler    18    Der Name "path" wurde nicht deklariert.
    Fehler    19    Der Name "path" wurde nicht deklariert.
    Fehler    20    Der Name "path" wurde nicht deklariert.
    Fehler    21    Der Name "actualfile" wurde nicht deklariert.
    Fehler    22    Der Name "Host" wurde nicht deklariert.
    Fehler    23    Der Name "path" wurde nicht deklariert.
    Fehler    24    Der Name "actualfile" wurde nicht deklariert.
    Fehler    25    Der Name "Host" wurde nicht deklariert.
    Fehler    26    Der Name "path" wurde nicht deklariert.
    Fehler    27    Der Name "addpercent" wurde nicht deklariert.
    Fehler    28    Der Name "progmax" wurde nicht deklariert.
    Fehler    29    Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenden Typ oder einem seiner Basistypen definiert wird.
    Fehler    30    Der Name "actualfile" wurde nicht deklariert.
    Fehler    31    Der Name "addpercent" wurde nicht deklariert.

    Ich glaube, dass mir noch einige Imports fehlen... oder könnte es sein, dass ich einfach nur noch etwas deklarieren muss?

    Ich verstehe das ganze nicht so ganz

     

    Ps. Sorry, dass ich dir noch keine punkte gegeben habe, habs jetzt nachgeholt


    LG Yves Riedener
    Samstag, 20. März 2010 11:04
  • Imports System.Net
    Imports System.IO
    
    Public Class Form1
        Friend Host, path, actualfile As String
        Friend addpercent, progmax As Integer
        Friend webcl As New WebClient
        Friend Event webevent As System.Net.UploadProgressChangedEventHandler
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Host = ""
            path = ""
            actualfile = ""
            If File.Exists(My.Application.Info.DirectoryPath + "\DirectoryList.txt") Then
                File.Delete(My.Application.Info.DirectoryPath + "\DirectoryList.txt")
            End If
            If File.Exists(path + "\list.txt") Then
                File.Delete(path + "\list.txt")
            End If
            My.Computer.Network.DownloadFile(Host + "DirectoryList.txt", My.Application.Info.DirectoryPath + "\DirectoryList.txt")
            Threading.Thread.Sleep(300)
            Dim Folders() As String = File.ReadAllLines(My.Application.Info.DirectoryPath + "\DirectoryList.txt(")
            For Each f As String In Folders
                If Not Directory.Exists(path + f) Then
                    Directory.CreateDirectory(path + f)
                End If
            Next
            My.Computer.Network.DownloadFile(Host + "list.txt", path + "\list.txt")
            Dim Lines() As String = IO.File.ReadAllLines(path + "\list.txt")
            progmax = Lines.Count * 100
            Dim linees As String() = IO.File.ReadAllLines(path + "\list.txt")
            For i As Integer = 0 To linees.Count - 1
                Try
                    Dim DataArray() As String = Split(linees(i), ";")
                    If IO.File.Exists(path + DataArray(1).Remove(DataArray(1).Count - 3, 3)) Then
                        Dim File As New IO.FileInfo(path + DataArray(1))
                        If Not File.Length = DataArray(2) Then
                            File.Delete()
                            actualfile = DataArray(3)
                            webcl.DownloadFileAsync(New Uri(Host + DataArray(0)), path + DataArray(1))
                        End If
                    Else
                        actualfile = DataArray(3)
                        webcl.DownloadFileAsync(New Uri(Host + DataArray(0)), path + DataArray(1))
                    End If
                Catch
                End Try
                addpercent += 100
            Next
        End Sub
    End Class

    Also irgendwo muss ich mich anmelden können für den ftp wie muss der code aussehen mit volgenden Daten:

    Ftpusername: ftpname

    Ftppasswort: ftppw

    Ftpadresse: "ftp://test.ts/folders/"

    Ich möchte dass der Ordner My.Computer.FileSystem.SpecialDirectories.Desktop auf die FTP Adresse hochgeladen wird.

    Welche Variablen muss ich dafür ändern?

    Ps. ich werde alle ihre Antworten als Antwort markieren, aber erst wenn funktioniert.


    LG Yves Riedener
    Sonntag, 21. März 2010 11:29
  • Hallo Yves,

    die Beispiele beziehen sich bisher alle darauf Dateien herunterzuladen. Du möchtest aber Dateien hochladen. Dazu kannst Du Dir mal folgendes Codebeispiel anschauen. Das dürfte alle Aspekte abdecken. Unter anderem auch das Thema Authentifizierung:

    VB.NET FTP Client
    http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/63796964-f88a-40cf-91eb-08e71e98fa83

    Um den Inhalt eines Ordners hochzuladen, müsstest Du dessen Inhalt durchlaufen und jede Datei einzeln hochladen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Sonntag, 21. März 2010 16:41
    Moderator
  • Hallo Yves,

    Ist diese Frage auch noch aktuell für Dich?

    Gut, kann ichs so machen, dass für ein Update nur die Daten überschrieben werden, welche nicht die gleiche grösse haben?

    Ps. Mein Ordner hat 615 Dateien und 22 Unterordner, ist das auch anders möglich?

    Download Manager à http://social.msdn.microsoft.com/Forums/de-DE/visualbasicde/thread/e147e6a8-ad26-442d-8e0d-f605d30eaa50

    Grüße,

    Robert

    Montag, 22. März 2010 13:50
    Besitzer
  • Ja, denn was ist wenn mein Kunde nicht genau die Daten hat, welche ich denke. Ich möchte dem Nutzer meines Programmes die Möglichkeit geben einzelne Dateien und auch ganze Ordner hoch zu laden. Doch dafür kann ich nicht jede einzelne Datei beschreiben, da ich die ja nicht kenne und mein Kunde kann das ja auch nicht machen(viel zu grosser Aufwand = Schlechtes Programm).
    LG Yves Riedener
    Montag, 22. März 2010 15:24