Nach Dateileichen suchen

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

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

    manni4545 schrieb:

    (...) einen kleinen Ansatz wie ich anfangen muss.


    Weißt du @manni4545, wir könnten dir jetzt einfach den fertigen Code Posten. Du kopierst dir den und im besten Fall läuft alles wie du möchtest. Die Idee, den Code dann mal durchzuarbeiten und dabei Programmieren zu lernen, halte ich für nicht nicht sinnvoll da du noch sehr weit am Anfang stehst.

    Wenn du wirklich vor hast Programmieren zu lernen, was ich dir sehr empfehlen kann, weil's spaß macht und nützlich ist (und weil in den Augen normal sterblicher alle Programmierer Götter sind ;-)), dann organisier dir ein Buch was dich strukturiert durch die Grundlagen leitet. Angefangen von der IDE (VisualStudio), über Datentypen, Schleifen, Methoden, Klassen, OOP und vielem mehr...

    Ich hab damals eines aus dieser Serie verwendet um die (Visual)Basics ;) zu lernen:
    amazon.de/gp/aw/d/3836237032/r…=512a0%2BJES9L&ref=plSrch
    Von Tutorials im Internet die Grundlagen zu lernen halte ich übrigens nichts.

    Wenn du dann zu einem Thema/Fall Fragen hast schau hier im Forum nach oder, falls du nicht fündig wirst, eröffne einen neuen Thread. Wir helfen dir dann alle sehr gerne weiter.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Danke

    werde mir das Buch mal anschauen..

    Wenigstens habe ich es mal geschaft in einer ComboBox die Laufwerke anzuzeigen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. ComboBox1.Items.AddRange(System.IO.Directory.GetLogicalDrives)
    4. End Sub
    5. End Class

    Wenn mans so anschaut ist es ja einfach Laufwerke anzuzeigen.
    Ich bin ein Programmierer :) :) ne das schwierigere wird ja jetzt erst kommen.

    Gruß
    Manni
    @manni4545 Wenn Du ordentlich mitarbeitest und Deine Probleme gut beschreibst, wird Dir auch präzise geholfen.
    Nur eben die Komplettlösung als Problem ist nicht das, wofür das Forum da ist, dafür gibt es den Marktplatz.
    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!

    manni4545 schrieb:

    Hi
    ist mir schon peinlich kein Code

    VB.NET-Quellcode

    1. Public Class Form1
    2. End Class



    @manni4545
    Ich möchte dir bei deinem Problem helfen. :)
    Download dir die Datei und füge Sie in ein neuen Projekt hinzu.
    Jetzt kannst du nach beliebig großen Dateien auf deinem Computer suchen!
    Form1.zip

    @An alle
    Es gibt noch ein kleines Problem im Code.
    Wenn man zum Beispiel im "Laufwerk C:\" nach einer Datei sucht, kommt eine Fehlermeldung!
    Der Zugriff auf den Pfad "C:\Windows " wurde verweigert. ;(
    Ich habe bereits versucht das Programm mit Administartorrechten zu starten, leider ohne Erfolg!
    Ich weiß dass man ein Try Catch einbauen sollte, aber wo?

    VB.NET-Quellcode

    1. ' Datei suchen...
    2. For Each f As String In IO.Directory.GetFiles(Me.ComboBox1.Text, "*.*", IO.SearchOption.AllDirectories)
    3. Dim information As New System.IO.FileInfo(f)
    4. If information.Length = Double.Parse(Me.TextBox1.Text) Then
    5. Me.ListBox1.Items.Add(f)
    6. End If
    7. Next

    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Es gibt noch ein kleines Problem im Code.
    Das wussten wir bereits seit Post #2.
    Zunächst würde ich da nicht eine TextBox nehmen, um die EXAKTE Länge der zu löschenden Dateien vorzugeben, sondern ein NumericUpDown, um eine MAXIMALE Länge vorzugeben.
    Außerdem selektieren wir ein Laufwerk vor, damit die Auflistung der Dateien nicht sofort knallt.
    Um Deine Exception zu vermeiden, müsen wir die Suche um eine Stufe erweitern, so etwa:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. ' Laufwerke auslesen...
    3. For Each a As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives
    4. Me.ComboBox1.Items.Add(a.Name)
    5. Next
    6. Me.ComboBox1.SelectedIndex = 0
    7. End Sub
    8. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    9. Me.ListBox1.Items.Clear()
    10. ' Verzeichnisse bereitstellen
    11. Dim dis() = New IO.DirectoryInfo(Me.ComboBox1.Text).GetDirectories("*.*")
    12. For Each di In dis
    13. Try
    14. ' Dateien auflisten
    15. Dim fis() = di.GetFiles("*.*", IO.SearchOption.AllDirectories)
    16. For Each fi In fis
    17. If fi.Length <= CInt(NumericUpDown1.Value) Then
    18. Me.ListBox1.Items.Add(fi)
    19. End If
    20. Next
    21. Catch ex As System.UnauthorizedAccessException
    22. End Try
    23. Next
    24. MessageBox.Show("Vorgang abgeschlosen!")
    25. End Sub
    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!
    Habe den Code
    mal genau angesehen. Komme langsam dahinter.

    Datei löschen

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. ListBox1.Items.Remove(ListBox1.SelectedItem)
    3. End Sub


    Damit löscht er ja nur das item aus der listbox und nicht die Datei selbst. Ist das korrekt?

    Gruß
    Manni

    manni4545 schrieb:

    Ist das korrekt?
    Jou.
    Wenn Du die Datei dazu löschen willst, musst Du zunächst das Item zurückcasten in den Datentyp, den Du der ListBox hinzugefügt hast, also entweder ein String oder eine FileInfo-Instanz.
    Über diese kannst Du dann ganz elementar auch die Datei löschen.
    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!