Ordner mit festen Name erstellen, aber Pfad aus suchen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Ordner mit festen Name erstellen, aber Pfad aus suchen

    Hallo,

    Ich bin neu hier im Forum, genau bin ich neu und versuche mich grade an VB express 2015.

    Und nun mal zu einen fragen:

    ich habe bis jetzt mir ein Ordner erstellt, was auch klappt und man kann den Pfad im Fenster aussuchen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    3. System.IO.Directory.CreateDirectory(SaveFileDialog1.FileName & Date.Now.Date)



    Ist es möglich das man wenn man auf Ordner erstellen Klick das da schon ein Dateiname steht ?

    inet-web.de/bilder/b1.jpg

    Es soll also eine Name da schon stehen" Backup- " das Datum wir ja mit angehängt was auch soll.

    Oder ist es möglich das man nur den Pfad angeben kann z.B. E: , D: und der Name mit Datum übernommen wird.
    @Stingi Willkommen im Forum. :thumbup:
    Die Lösung von @Gangsterkrafter ist korrekt.
    Was mir an Deinem Code nicht gefällt, ist die Zeile

    Stingi schrieb:

    VB.NET-Quellcode

    1. System.IO.Directory.CreateDirectory(SaveFileDialog1.FileName & Date.Now.Date)
    Da wird mit einem dem Sinn nach Dateinamen ein Verzeichnis erstellt.
    Wenn Du ausschließlich ein Verzeichnis zurückgeben willst, sieh Dir mal den FolderBrowserDialog an, der ist dafür gemacht.
    Wenn Du einen Automaten baust, kannst Du auch einfach so in einem Zielverzeichnis ein Unterverzeichnis mit dem Datum erstellen. Dann aber empfehle ich Dir das Format "yyyy MM dd" (oder mit anderen Trennzeichen), da ist die chronologische und die alphabetische Reihenfolge identisch.

    VB.NET-Quellcode

    1. MessageBox.Show(Date.Now.Date.ToString("yyyy MM dd"))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Dann aber empfehle ich Dir das Format "yyyy MM dd" (oder mit anderen Trennzeichen), da ist die chronologische und die alphabetische Reihenfolge identisch.


    Erst recht dann würde ich aber mit dem Datum beginnen beim Namen. Wobei ich mach das seit zig Jahren auch manuell schon so, dass jedes Word, Excel- oder Scanner-Dokument bei mir mit dem Datum nach dem Format yyyyMMdd gefolgt vom einem Unterstrich anfängt.
    Für die Zukunft, empfehle ich, bei derartigen Unklarheiten, einfach mal MSDN zu konsultieren, bzw, einfach mal selbständig im Web recherchieren.
    msdn.microsoft.com/de-de/libra…filedialog(v=vs.110).aspx
    Und, oder etwas mit Intellisence rum zu probieren.

    Gangsterkrafter schrieb:

    Ja, das geht sehr einfach.
    Wundert mich Ehrlich gesagt dass du Dafür Hilfe Brauchst, aber naja Bist ja grad erst Angefangen da kennt man sich Natürlich noch nicht so gut aus.

    Das ganze geht mit:

    VB.NET-Quellcode

    1. SaveFileDialog1.FileName = "DATEINAME.txt"


    lg


    Danke fpr den TIP, habe es eingebaut sieht aber aus wie vorher.

    Es wird bei mir kein Namen angegeben, oder ich habe es falsch eingebaut

    System.IO.Directory.CreateDirectory(SaveFileDialog1.FileName = "DATEINAME.txt" & Date.Now.Date)

    Stingi schrieb:

    oder ich habe es falsch eingebaut
    sieht so aus.
    Teil das mal in mehrere Zeilen auf, mit sog. "Zwischen-Variablen":

    VB.NET-Quellcode

    1. Dim s=SaveFileDialog1.FileName = "DATEINAME.txt" & Date.Now.Date
    2. System.IO.Directory.CreateDirectory(s)
    Welchen Datentyp bekommt s zugewiesen?
    Welchen Datentyp aber erwartet CreateDirectory()?

    Hinweise zur Lösung und Weiterführendes: Video-Tut: Welchen Datentyp hat das Objekt?
    @ErfinderDesRades Jou.
    Das sieht mir wieder mal nach dem "Straftatbestand" Option Strict Off aus.
    @Stingi Sieh Dir bitte den Code genau an, Dein Code in Post #1 sah anders aus.
    Dein Pfad sieht so aus:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    @ErfinderDesRades Jou.
    Das sieht mir wieder mal nach dem "Straftatbestand" Option Strict Off aus.
    @Stingi Sieh Dir bitte den Code genau an, Dein Code in Post #1 sah anders aus.
    Dein Pfad sieht so aus:
    vb-paradise.de/index.php/Attac…7b62ba81f52277b58f7d203d8


    Ö , wo hast du den den Pfad auf einmal her ?

    Auf jeden fall habe ich es geschafft, es halb wegs hin zu bekommen

    Vielen dank an @Alle für die schönen und guten TIPs

    Ich habe es geschafft ein Ordner mit den Programmname zu erstellen den ein Ordner mit Datum und den die Ordnerkopien z.B. Backup /30.09.2016 /Eigene Dokumente
    /Eigene Bilder

    Leider habe ich es noch nicht geschafft ein Fenster mit Festenname zu erstellen, wo man nur das Laufwerk ändern kann, da ich ja nicht weis ob einer das auf den USB Stick Speichern will oder auf einer anderen Platte.

    Die Ordner die alle kopiert werden sollen so bleiben, es wird fast der ganze Benutzer Ordner kopiert.

    Das soll so ein kleines Backup Programm werden, das mir das leben erleichtern soll da ich oft mein BS und von Freunde neu mache.

    Und hier mal meine Ideen oder Fragen:

    Wie bekomme ich es hin das der Pfad von dem Benutzer aus gelesen wird , bei mir ist das ja C:\Users aber es kann ja auch einer das auf D:\User haben.Wie kann man den Laufwerks - Pfad per click angeben, mit Festenname z.B. U:\Backi E:\Backi , also und das U: , E:

    VB.NET-Quellcode

    1. Private Sub Dektop_Click(sender As Object, e As EventArgs) Handles Desktop.ClickMy.Computer.FileSystem.CopyDirectory("C:\Users\Stingi-Büro\Desktop\", "E:\BaCKi\" & Date.Now.Date & "\Desktop", FileIO.UIOption.AllDialogs, FileIO.UICancelOption.ThrowException)End Sub


    Sorry wenn ich vielleicht ein bisschen komisch schreibe.

    Bitte verständlich schreiben, da ich noch nicht viel kann und erst mit Visual Basic angefangen habe.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Stingi“ ()

    Stingi schrieb:

    Ö , wo hast du den den Pfad auf einmal her ?
    Ich habe den Pfad genau da gedunden, wo Du ihn erzeugt hast. ;)
    Verstehe Post #7
    und
    verstehe, was Option Strict On macht bzw. was Option Strict Off nicht macht (das ist leider die Default-Einstellung).
    Gugst Du Warum Strict On?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!