OpenFileDialog - Datei Kopieren, umbennen und Umbenannte Datei öffnen

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von Eiskaffee.

    Also soweit ich das sehe funktionierts nicht, aber ich hab ja auch keine Ahnung wie der Code da rein muss...


    VB.NET-Quellcode

    1. Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
    2. Using ofd As New OpenFileDialog()
    3. ofd.InitialDirectory = "N:\" + TextBox1.Text
    4. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. 'Dim fi As New IO.FileInfo(ofd.FileName)
    6. 'Dim newname As String = fi.Name
    7. Dim fi As IO.FileInfo
    8. Dim splitter() As String = ofd.FileName.Split("-"c)
    9. If splitter.Length > 2 Then
    10. fi = New IO.FileInfo(splitter(0).Trim & " - " & splitter(2).Trim)
    11. Else
    12. fi = New IO.FileInfo(ofd.FileName)
    13. End If
    14. fi.CopyTo(fi.DirectoryName & "\" _
    15. & IO.Path.GetFileNameWithoutExtension(fi.Name) & " - " & ComboBox1.Text & fi.Extension)
    16. Process.Start(fi.DirectoryName & "\" _
    17. & IO.Path.GetFileNameWithoutExtension(fi.Name) & " - " & ComboBox1.Text & fi.Extension)
    18. End If
    19. End Using
    20. End Sub
    Diese existiert.

    Eiskaffee schrieb:

    VB.NET-Quellcode

    1. fi = New IO.FileInfo(ofd.FileName)
    Ob diese existiert, wissen wir nicht mit Sicherheit:

    Eiskaffee schrieb:

    VB.NET-Quellcode

    1. fi = New IO.FileInfo(splitter(0).Trim & " - " & splitter(2).Trim)
    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!
    Dann schreib aus Deiner jetzigen Sicht Dein Problem einfach noch mal auf.
    Aber bitte nicht oben nachlesen.
    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!
    Also:

    Ich habe ein Openfolderdialog.

    Damit öffne ich eine Datei, diese hat am anfang immer den Namen

    >"Bla" - Erstbegehung<

    Wenn ich sie so öffne, gebe ich ihr gleich in einer Combobox den "titel" > 1. Zwischenbegehung<

    d.h. es soll dastehen: >"Bla" - 1. Zwischenbegehung<

    es steht aber da: >"Bla" - Erstbegehung - 1. Zwischenbegehung<

    was zu tun ist:

    Irgendwie den Teil zwischen "-" und der endung, also dem punkt "." ersetzen durch den aktuellen Inhalt der Combobox (im moment >1. Zwischenbegehung<)

    achja. Das ganze wird ja kopiert, damit ich die alte erstbegehung noch habe.
    Die kopierte 1. Zwischenbegehung soll dann direkt mit Process.Start geöffnet werden, der Teil klappt.
    Soweit verstanden? :)
    "Bla" geht nicht ==> Bla.
    Also: Du möchtest einen String, wo immer der auch herkommt,
    von
    Bla - Erstbegehung
    nach
    Bla - 1. Zwischenbegehung
    konvertieren.

    VB.NET-Quellcode

    1. txt = txt.Replace("Erstbegehung", "1. Zwischenbegehung")
    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!
    und wie baue ich das in den CopyTo vorgang ein?

    Ich habe ja mehrere begehungen, insgesamt befinden sich 5 objekte in der Combobox.

    Nach der 1. Zwischenbegehung folgt logischerweise die 2. dann 3. etc. Bis zur Schlussbegehung. Also kann man nicht einfach sagen
    primitiv jetzt: >Nimm "- text" weg und ersetzte durch Combobox1<

    unelegant aber es passt:

    VB.NET-Quellcode

    1. Using ofd As New OpenFileDialog()
    2. ofd.InitialDirectory = "N:\" + TextBox1.Text
    3. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    4. TextBox5.Text = System.IO.Path.GetFileNameWithoutExtension(ofd.FileName)
    5. TextBox5.Text = TextBox5.Text.Split(CChar(" -"))(0)
    6. Dim fi As New IO.FileInfo(ofd.FileName)
    7. fi.CopyTo(fi.DirectoryName & "\" _
    8. & TextBox5.Text & " - " & ComboBox1.Text & fi.Extension)
    9. Process.Start(fi.DirectoryName & "\" _
    10. & TextBox5.Text & " - " & ComboBox1.Text & fi.Extension)
    11. End If
    12. End Using

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eiskaffee“ ()

    Eiskaffee schrieb:

    und wie baue ich das in den CopyTo vorgang ein?
    Löse die Probleme einzeln. Ein Thread - ein Problem.
    Du beherrschst es nicht, in einem Thread 2 Probleme zu lösen, das ist einfach nicht sinnvoll.

    VB.NET-Quellcode

    1. Dim fi = New IO.FileInfo("C:\Temp\test.txt")
    2. fi.CopyTo("C:\Temp\sonst\test.txt")
    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!