Tutorial: Dateien & Ordner in VB 2008

    • VB.NET

    Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

      Tutorial: Dateien & Ordner in VB 2008

      -----
      Dieses Tutorial stammt von kevin89
      -----

      VB 2008: Alles zum Umgang mit Ordnern und Dateien

      Da der Umgang mit Dateien in VB.Net ganz anders ist als in VB6 etc. habe ich mich entschieden, dieses sehr einfache Tutorial zu schreiben. Ich habe es aber auch getan, um Fragen zu vermeiden, wie oft kommt es vor, dass Leute nicht die Sufu benutzen, und das Thema "Wie kann ich jede Zeile einer Textdatei in eine Listbox kriegen" oder "Wie kann ich alle Dateien in einem Ordner in eine Combobox kriegen" zum 50. mal eröffnen. Irgendwann reicht es mit den Wiederholungen :wacko:

      -------------------------------------

      Dateien schreiben

      Eine Datei kann man so schreiben:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.WriteAllText("datei.txt", "Inhalt", False)


      Dabei gibt es folgende Parameter:
      1. Datei. Die Endung ist egal, es muss nicht "txt" sein
      2. Der Inhalt der Datei. Kann auch mehrzeilig über "vbnewline" sein.
      3. Owerwrite/Append: Falls False, wird eine bereits vorhandenene Datei überschrieben, falls True, wird der neue Text einfach an den alten angefügt.

      Andere Methode : Streamwriter

      VB.NET-Quellcode

      1. Dim fs As New IO.Streamwriter("test.txt", False)
      2. fs.WriteLine("erste Zeile")
      3. fs.WriteLine("zweite Zeile")
      4. fs.Close

      Es ist sinnvoll, den Streamwriter bei mehrzeiligen Texten zu nutzen.

      --------------------------------------------------------------------------

      Dateien lesen

      Eine Datei kann man so lesen:

      VB.NET-Quellcode

      1. Dim inhalt As String=My.Computer.FileSystem.ReadAllText("datei.txt")


      Dabei gibt es folgende Parameter:
      1. Datei. Die Endung ist egal, es muss nicht "txt" sein.
      2. Ein Optionaler Parameter: Unicode oder ANSII zum einlesen

      2. Methode : Streamreader

      VB.NET-Quellcode

      1. Dim fs As New IO.Streamreader("test.txt")
      2. Dim erstezeile As String = fs.ReadLine
      3. Dim zweitezeile As String=fs.ReadLine
      4. fs.Close

      3. Methode

      VB.NET-Quellcode

      1. Dim lines() As String=IO.File.ReadAllLines("datei.txt")
      2. ' Beispiel: Wir wollen alle Zeilen einer Datei in eine Listbox hinzufügen:
      3. For i As Long=0 to Ubound(lines)
      4. ListBox1.Items.Add(lines(i))
      5. Next

      Es ist sinnvoll, bei langen Texten die erste Methode zu nutzen.
      Für zeilenweises einlesen ist die dritte Methode am besten, die zweite ist jedoch auch geeignet.

      --------------------------------------------------------------------------

      Dateien kopieren

      Dateien kann man so kopieren:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.Copyfile("datei.txt", "test\datei.txt")


      Dabei gibt es folgende Parameter:
      1. Die Datei, die kopiert werden soll
      2. Der Ort inklusive Dateinamen, wo die Datei hinkopiert werden soll.

      Beim kopieren bleibt die alte Datei erhalten, im Gegensatz zum verschieben.

      --------------------------------------------------------------------------

      Dateien löschen

      Dateien kann man so löschen:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.DeleteFile("datei.txt")


      Dabei gibt es folgende Parameter:
      1. Die Datei, die gelöscht werden soll.

      --------------------------------------------------------------------------

      Dateien verschieben

      Dateien kann man so verschieben:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.Movefile("datei.txt", "test\datei.txt")


      Dabei gibt es folgende Parameter:
      1. Die Datei, die verschoben werden soll
      2. Der Ort inklusive Dateinamen, wo die Datei hinverschoben werden soll.

      Beim verschieben bleibt die verschobene Datei nicht mehr erhalten, im Gegensatz zum kopieren.

      --------------------------------------------------------------------------

      Ordner kopieren

      Ordner kann man so kopieren:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.Copdirectory("ordner", "test\ordner")


      Dabei gibt es folgende Parameter:
      1. Der Ordner, der kopiert werden soll
      2. Der Ort inklusive Ordnernamen, wo der Ordner hinkopiert werden soll.

      Beim kopieren bleibt der alte Ordner erhalten, im Gegensatz zum verschieben.

      --------------------------------------------------------------------------

      Ordner löschen

      Ordner kann man so löschen:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.Deletedirectory("ordner", FileIO.DeleteDirectoryOption.DeleteAllContents)


      Dabei gibt es folgende Parameter:
      1. Der Ordner, die gelöscht werden soll.
      2. Der "Löschmodus"

      --------------------------------------------------------------------------

      Dateien verschieben

      Dateien kann man so verschieben:

      VB.NET-Quellcode

      1. My.Computer.FileSystem.Movefile("datei.txt", "test\datei.txt")


      Dabei gibt es folgende Parameter:
      1. Die Datei, die verschoben werden soll
      2. Der Ort inklusive Dateinamen, wo die Datei hinverschoben werden soll.

      Beim verschieben bleibt die verschobene Datei nicht mehr erhalten, im Gegensatz zum kopieren.

      --------------------------------------------------------------------------

      Anzahl der Zeilen auslesen

      Mit diesem Code kann man die Anzahl der Zeilen einer Textdatei auslesen:

      VB.NET-Quellcode

      1. Dim lines() As String=IO.File.ReadAllLines("datei.txt")
      2. MessageBox.Show("Die Datei hat " & lines(Ubound(lines)) & " Zeilen.")

      --------------------------------------------------------------------------

      Zeichen ersetzen

      Mit diesem Code kann man alle Zeichen in einer Datei durch ein beliebiges anderes Zeichen ersetzen:

      VB.NET-Quellcode

      1. Dim read As String = My.Computer.FileSystem.ReadAllText("datei.txt")
      2. read=read.Replace("A", "B") ' Mit diesem Code werden alle A´s durch B´s ersetzt
      3. ' Optional kann man jetzt wieder die Datei schreiben, damit die Änderung gespeichert wird:
      4. My.Computer.FileSystem.WriteAllText("datei.txt", read, False)

      Mit diesem Code kann man alle Zeichen in einer bestimmten Zeile ersetzen:

      VB.NET-Quellcode

      1. Dim lines() As String=IO.File.ReadAllLines("datei.txt")
      2. For i=0 to Ubound(lines)
      3. lines(0)=lines(0).Tostring.Replace("A", "B")
      4. Next
      5. ' Optional wieder schreiben
      6. Dim sw As New IO.Streamwriter("datei.txt", False)
      7. For l As Long=0 to Ubound(lines)
      8. sw.WriteLine(lines(l))
      9. Next


      In diesem Beispiel werden alle A´s in der ersten Zeile durch B´s ersetzt.

      --------------------------------------------------------------------------

      Alle Dateien eines Ordners auflisten

      Mit diesem Befehl kann man alle Dateien eines Ordners auflisten:

      VB.NET-Quellcode

      1. Dim list As Object = My.Computer.FileSystem.GetFiles("C:\")


      --------------------------------------------------------------------------

      Alle Unterordner eines Ordners auflisten

      Mit diesem Befehl kann man alle Unterordner eines Ordners auflisten:

      VB.NET-Quellcode

      1. Dim list As Object = My.Computer.FileSystem.GetDirectories("C:\")


      --------------------------------------------------------------------------

      Dateigröße auslesen

      Mit diesem Code kann man die Größe einer Datei in Bytes auslesen:

      VB.NET-Quellcode

      1. Dim filesize As String = FileLen("datei.txt")


      Leicht kann man die Dateigröße in Kilobytes umrechnen:

      VB.NET-Quellcode

      1. Dim filesizeinbytes As Integer = FileLen("datei.txt")
      2. Dim filesizeinkilobytes As Integer = filesizeinbytes / 1024
      3. Dim filesizeinmegabytes As Integer = filesizeinbytes / 1024 / 1024
      Besucht auch mein anderes Forum:
      Das Amateurfilm-Forum

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

      Hallo Epic,

      naja - wenn wir uns das Tutorial so ansehen, stellen wir fest, dass wir eigentlich schon alles haben.

      Eine bestimmte Zeile aus einer Textdatei auslesen

      VB.NET-Quellcode

      1. 'Erst die ganze Datei einlesen
      2. Dim lines() As String=IO.File.ReadAllLines("datei.txt")
      3. 'Dann die gewünschte Zeile raussuchen
      4. dim MeineZeile As String = lines(DieZeileDieIchWill)

      Gruss

      mikeb69
      Ich finde den Zugriffe per My-Namespace immer bisserl unsystematisch.

      Dabei gibts 2 fabelhafte Klassen, die alles für den Zugriff aufs Dateisystem erforderliche bereitstellen: DirectoryInfo und FileInfo

      Gemeinsam ist ihnen:
      CopyTo, MoveTo, Delete, Create, Name, Fullname, Exists (Abfrage)

      Für FileInfo stehen speziell zur Verfügung:
      Length, Extension, Directory (das übergeordnete), Create As FileStream, CreateText As StreamWriter, Open As Stream, OpenText as StreamReader

      Speziell für DirectoryInfo:
      Parent As DirectoryInfo, GetDirectories (die enthaltenen Directories), GetFiles (enthaltene Files)

      Es lohnt sich sehr, diese beiden Klassen sich im ObjectBrowser mal genauer anzugucken.