Dateiendungen abfragen und wenn nötig verändern

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von vanitas-mundi.

    Dateiendungen abfragen und wenn nötig verändern

    Moin,
    Suche eine Möglichkeit, dass ich eine Dateiendung abfrage.

    VB.NET-Quellcode

    1. OpenFileDialog1.ShowDialog()
    2. For folge = 1 To Len(OpenFileDialog1.FileName)
    3. check = Mid(OpenFileDialog1.FileName, folge, 4)
    4. If check = ".txt" Then
    5. FileOpen(Xy, OpenFileDialog1.FileName, OpenMode.Input)
    6. Do Until EOF(Xy)
    7. TextBox1.Text = TextBox1.Text & " " & LineInput(Xy)
    8. Loop
    9. FileClose(Xy)
    10. ElseIf check = ".bat" Then
    11. Rofl = Replace(OpenFileDialog1.FileName, check, ".txt")
    12. FileOpen(Xy, rofl, OpenMode.Input)
    13. Do Until EOF(Xy)
    14. TextBox1.Text = TextBox1.Text & " " & LineInput(Xy)
    15. Loop
    16. FileClose(Xy)
    17. End IfNext

    Das sieht 1. seh unelegant aus und 2. funktioniert es nicht - warum auch immer.
    WENN check = ".bat" ist, DANN ändere check zu ".txt" und speichere dies in Rofl.
    Daraus müsste doch folgen: [Pfad]\Datei.bat -> [Pfad]\Datei.txt und erspeichert das dann in "Rofl".
    Aber - ich kanns mir nicht erklären - er tut es nicht. Ziel des ganzen ist ein kleiner Bat-Editor, als Abwechslung zum Hex Editor. Gleiche Aufgabe mit unterschiedlichen "Schwierigkeiten". :D

    Greets
    Wenn du NET verwendest solltest du auch NET programmieren und die Kompatibilitätssachen aus Microsoft.VisualBasic vergessen.

    VB.NET-Quellcode

    1. Me.OpenFileDialog1.CheckFileExists = True
    2. If Me.OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    3. Dim strFile As String = Me.OpenFileDialog1.FileName
    4. If ".bat" = strFile.Substring(strFile.Length - 4, 4) Then
    5. System.IO.File.Copy(strFile, strFile.Substring(0, strFile.Length - 4) & ".txt", True)
    6. strFile = strFile.Substring(0, strFile.Length - 4) & ".txt"
    7. End If
    8. Me.TextBox1.Text = System.IO.File.ReadAllText(strFile)
    9. End If

    Momentan wird die *.bat-Datei in eine *.txt kopiert.
    Wenn du die *.bat nicht kopieren sondern nur umbenennen willst dann brauchst du nur Copy durch Move ersetzen
    So kann man glaube ich die Endung auch abfragen:

    VB.NET-Quellcode

    1. Dim File As New IO.FileInfo(Pfad)
    2. Dim Endung As String = File.Extension.ToLower

    Die Datei muss nur Existieren...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FFränz“ ()

    Gaga schrieb:


    Wenn du NET verwendest solltest du auch NET programmieren und die Kompatibilitätssachen aus Microsoft.VisualBasic vergessen.
    Visual Basic 2008 Express Version. Ich denke doch, dass das VB und nicht NET ist? Würde mich jetzt wundern.

    Ansonsten vielen Dank für eure Posts. Hat sehr geholfen. <3

    Greets
    Visual Basic 2008 Express Version. Ich denke doch, dass das VB und nicht NET ist? Würde mich jetzt wundern.

    Visual Basic 2008 ist NET, genauso wie Visual Basic 2005 und Visual Basic .net 2003

    Die Sachen unter Microsoft.VisualBasic exestieren nur für eine automatische Konvertierung von altem Visual Basic 6.0-Code (=COM) nach NET die meißt eh' nicht das gewünschte Ergebnis liefert.

    FFränz schrieb:

    In Visual Basic 2008 Express programmiert man VB.NET.
    ;) Ich habe auch lange gebraucht um das rauszufinden...


    Ich hatte schon den verdacht. Syntax so oft völlig anders, als bei VB 6 und bei spezifischen Suchen für 2008 Express kam sehr oft was mit NET...

    Oh man, immerhin weiß ichs nun. :D

    Bis zum nächstne Problem. :thumbsup: