Datei umbenennen und verschieben

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ChaosBernd.

    Datei umbenennen und verschieben

    Hallo,

    ich möchte ein Programm erstellen, dass im Prinzip nur aus einem Button und einem Textfeld besteht.

    Beim Klick auf den Button, soll überprüft werden, ob in einem fest definiertem Ordner C:\Test\ eine Datei im PDF Format liegt.
    wenn ja, dann soll weitergemacht werden, wenn nein, dann mit einer kurzen Meldung, dass mehrere Dateien oder eine nich-PDF Datei gefunden wurden, abbrechen.

    Anschließend soll die PDF Datei umbenannt werden und zwar so, wie in dem Textfeld vorgegeben. In dem Textfeld steht dann zB. "Test.pdf" und die Ursprungsdatei hat einen variablen Dateinamen!

    Nach dem umbenennen soll die Datei Test.pdf in das Verzeichnis C:\Fertig\ verschoben werden.

    Nach erfolgreichem verschieben und umbenennen soll eine kurze Meldung ausgegeben werden.

    Prinzipiell ist das ein ganz einfaches Programm. Die Probleme die ich habe, sind in der Abfrage, dass in dem Verzeichnis nur eine PDF Datei liegen darf ansonsten muss abgebrochen werden.
    Das zweite Problem ist, das Umbenennen, da die Ursprungsdatei variable Namen hat und der Zieldateiname aus dem Textfeld gelesen werden muss.

    Wäre dankbar für jede Hilfe.
    Da ich nicht gerade begabt in VB bin, wäre eine etwas genauere Beschreinbung toll!

    Vielen Dank!!!
    Danke, das hilft mir aber leider nicht so weiter, da ich nichts darin finden kann, das meine Probleme mit dem variablen Dateinamen anspricht oder die Abrage ob nur eine PDF datei in dem verzeichnis liegt.

    Oder ich bin einfach zu doof...

    Danke!
    Probier mal das hier aus:

    VB.NET-Quellcode

    1. Dim Pfad As String = ""
    2. ' der Pfad des Verzeichnis in dem sich die Dateien befinden
    3. Dim di As New DirectoryInfo(Pfad)
    4. Dim files_jpg As FileInfo() = di.GetFiles("*.jpg")
    5. For i As Integer = 0 To files_jpg.Length - 1
    6. files_jpg(i).Delete()
    7. Next


    Von: [url]http://dotnet-snippets.de/dns/alle-dateien-vom-gleichen-typ-loeschen-SID96.aspx[/url]

    sonst hab ich noch das hier gefunden:
    Link

    Mfg
    Firestorm
    Naja mein Problem ist einfach, dass der Name der Ursprungsdatei variabel ist.

    sourceFile inkl Path spricht ja genau eine Datei an, die zb C:\Test\Test.pdf heißt. wenn die Datei jetzt aber Test2.pdf heißt versagt das Programm. das verstehe ich einfach nicht wie ich das löse, oder bin ich gerade einfach nur etwas schwer von Begriff??

    Danke!

    Quellcode

    1. Private Sub Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start.Click
    2. Dim Pfad As String = "C:\Test\" ' der Pfad des Verzeichnis in dem sich die Dateien befinden
    3. Dim di As New IO.DirectoryInfo(Pfad)
    4. Dim files_jpg As IO.FileInfo() = di.GetFiles("*.pdf")
    5. For i As Integer = 0 To files_jpg.Length - 1
    6. If i = 1 Then
    7. files_jpg(i).MoveTo("C:\Test\Test\Test.pdf")
    8. ElseIf i > 1 Then
    9. MsgBox("Zu viele PDF Dateien im Verzeichnis")
    10. End If
    11. Next


    So das habe ich jetzt mal produziert. Aber das Problem ist, dass er jetzt nur loslegt, wenn 2 PDF Dateien im Verzeichnis sind und dann eine verschiebt und umbenennt. Eigentlich soll er, falls mehr als 1 PDF im Verzeichnis sind eine Meldung ausspucken und stoppen und nur wenn 1 Datei drin ist diese umbenennen und verschieben!