Programm b.z.w Spiel mit/ohne gewünschte Dateien ausführen

  • VB.NET

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

    @MVN050 Ja, hast Recht, es sind die veralteten Pfade, ich wollte jetzt weil ich weiter gekommen bin einen neuen Thread bezogen auf das erstellen, Wie ich denn jetzt genau die Dateien die ich kopiere, wieder orten kann damit es nicht passiert das Mods gelöscht werden die nicht vom Launcher in den Spieleordner getan wurden. Ich habe jetzt schonmal ne Schleife wie du mir per PN vorgeschlagen hast. Jetzt brauche ich unbedingt eine Pfadaktualisierungmethode von Dateien die auschließlich nur vom Programm angefasst wurden. Da du ja sagst das du schonmal sowas gemacht hast, glaube ich weißt du wie das geht und kannst sofort hier mir diese Frage beantworten ;)
    ...
    denk doch mal bissle nach?

    du kopierst die datei vom Mod-Ordner in den Hauptordner richtig? funktioniert das?
    wenn du das gemacht hast weisst du doch welche datei du verschoben hast und trägst die Datei wieder in eine liste ein...

    Dein Programm liest dann nur die Liste "alleVerschobenenDateien.txt aus und weiss genau welche Dateien zum Mod gehören und löscht/verschieb diese wieder...
    @MVN050 wie beschrieben habe ich kopieren und in Liste eintragen fertig. Ich betone kopieren nicht verschieben. Meine Pfade die in die Listbox kommen sind die Pfade vom Modordner und nicht da wohin kopiert wird. Also wie soll das denn dann gehen? Ich muss doch den Zielpfad+Datei als Ergebnis kriegen.

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

    soll das denn dann gehen? Ich muss doch den Zielpfad+Datei als Ergebnis kriegen.

    und genau das mein Lieber trägst du in deine Liste ein ;)
    wenn du es doch schaffst die Datei vom Modordner in dne hauptordner zu kopieren... wo is dann das Problem die Kopierte Datei einfach in eine Liste ein zu tragen damit du die später wieder löschen kannst?
    @MVN050 @RodFromGermany Ich dachte das geht nicht weil es ja der Pfad ist indem hinkopiert wird.
    Nur wie beziehe ich Unterordner mit ein? Er listet den Ordner der kopiert wird nicht auf, nur alle Dateien die sich nicht in einem Ordner befinden.

    Aber Danke, hätte nicht gedacht das du das so meinst

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

    VBSAmatuer schrieb:

    Er listet den Ordner der kopiert wird nicht auf, nur alle Dateien die sich nicht in einem Ordner befinden.
    Sieh Dir mal den Unterschied an zwischen einerseits FolderBrowserDialog und andererseits OpenFileDialog bzw. SaveFileDialog.
    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 @petaod @MVN050
    Ich habe jetzt es hinbekommen die Ordner auch in die Listbox eintragen zu lassen. Nur listet er nicht die kopierten Ordner auf statt alle, trotz Schleife und dem ganzen Kram,
    Das soll er auflisten

    VB.NET-Quellcode

    1. For Each di As DirectoryInfo In directory.GetDirectories
    2. ListBox2.Items.Add(di.GetDirectories)
    3. Next


    Und das ist meine Schleife

    VB.NET-Quellcode

    1. For i As Integer = 0 To ListBox2.Items.Count - 1
    2. My.Computer.FileSystem.DeleteDirectory(ListBox2.Items.Item(i), FileIO.DeleteDirectoryOption.DeleteAllContents)
    3. Next


    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „VBSAmatuer“ ()

    was tust du da?
    My.Computer.FileSystem.DeleteDirectory = msdn.microsoft.com/de-de/library/77s9s78y(v=vs.90).aspx = löscht ein verzeichnis = löscht ein Ordner= der Ordner ist gelöscht
    willst du das?

    was gibt er dir für eine fehlermeldung bei

    VB.NET-Quellcode

    1. For Each di As DirectoryInfo In directory.GetDirectories
    2. ListBox2.Items.Add(di.GetDirectories)
    3. Next


    ich versteh nur nicht warum du nicht warum du dir dne Ordner auflistest und nicht die Dateien? woher soll den dein Programm nach einem Neustart wissen welche Dateien in einem Ordner waren?
    Überlege dir doch erstmal eine Logik... im mom seh ich da absolut keine sondern nur wirres Programmieren... das wird zu nichts führen...

    Schreib uns doch mal deine Logik. Wie du es machen willst. und dann sagen wir dir warum es so nicht laufen kann/würde. Geben dir andere Ideen und dann können wir mit dem Programmieren anfangen ;)
    @MVN050 Er gibt keine Fehlermeldung ,außerdem lösche ich nicht nur Ordner sondern Dateien. Ich habe hier mindests schon 10 mal gesagt das ich Ordner und Datein aufliste. Und beides aus dem kopierten Ordner soll gelöscht werden. LESEN! Ich habe schon mehrmals geäußert was ich machen will, und warte Tage auf Hilfe. Ich habe schon geschrieben was ich fertig habe.
    Das Programm hat langsam keinen Sinn mehr weil seit Heute Mods möglich sind die Datein erstetzen. Dieses Forum ist so inaktiv, wo sind denn mal Andere hier??

    In diesem Ordner sind Datein und Ordner
    Die werden in das Spieleverzeichnis vom Programm kopiert
    Wenn ich diese Mods nicht mehr haben will, soll das Programm die Kopien dieser Dateien und Ordner löschen.
    Ordner und Dateien werden in einer Listbox aufgelistet und nicht in einer Textdatei.
    Das Programm soll die kopierten Ordner und Datein löschen ohne dabei andere vom Programm nicht kopierte Datein und Ornder zu löschen!
    Aber meinem Code ist das egal und löscht einfach jeden Ordner auch wenn das Programm garnichts mit den Datein zutun hat.

    Mir wird das Forum einmählig zu blöd, kaum einer antwortet, keine klaren Antworten und ich muss mich ständig wiederholen und komme zu nichts.

    Sorry ich bin grad ziemlich sauer.
    @MVN050

    VBSAmatuer schrieb:


    Ordner und Dateien werden in einer Listbox aufgelistet und nicht in einer Textdatei.



    VB.NET-Quellcode

    1. Try
    2. For i As Integer = 0 To ListBox1.Items.Count - 1
    3. My.Computer.FileSystem.DeleteFile(ListBox1.Items.Item(i))
    4. 'My.Computer.FileSystem.DeleteDirectory(ListBox1.Items.Item(i), FileIO.DeleteDirectoryOption.DeleteAllContents)
    5. Next
    6. For i As Integer = 0 To ListBox2.Items.Count - 1
    7. My.Computer.FileSystem.DeleteDirectory(ListBox2.Items.Item(i), FileIO.DeleteDirectoryOption.DeleteAllContents)
    8. Next
    9. MsgBox("Successfully deactivated! Now can only Play Online without any risk if dont use Trainers! :) ")
    10. Catch ex As Exception
    11. MsgBox("Fail, sorry, try it again ;) " & ex.Message)
    12. End Try




    VB.NET-Quellcode

    1. Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
    2. Try
    3. My.Computer.FileSystem.CopyDirectory(Modpfad, FolderBrowserDialog1.SelectedPath)
    4. Endung = System.IO.Path.GetExtension(Modpfad)
    5. SaveFileDialog1.FileName = System.IO.Path.GetFileNameWithoutExtension(Modpfad)
    6. 'System.IO.Directory.CreateDirectory(Modpfad)
    7. MsgBox("Successfully activated!")
    8. Shell("netsh advfirewall firewall add rule new name=GTA Online Blocker dir=out program=" & OpenFileDialog1.FileName & " remoteip=localsubnet action=block")
    9. Catch ex As Exception
    10. MsgBox("Error!" & ex.Message)
    11. End Try
    12. ListBox1.Items.Clear()
    13. Dim directory As New System.IO.DirectoryInfo(FolderBrowserDialog1.SelectedPath)
    14. For Each file1 As System.IO.FileInfo In directory.GetFiles
    15. If file1.Extension = ".dll" Or file1.Extension = ".asi" Or file1.Extension = ".lua" Or file1.Extension = ".log" Or file1.Extension = ".txt" Or file1.Extension = ".xml" Or file1.Extension = ".ini" Then
    16. 'ListBox1.Items.Add(file1.Refresh)
    17. ListBox1.Items.Add(file1.FullName)
    18. End If
    19. Next
    20. For Each di As DirectoryInfo In directory.GetDirectories
    21. ListBox2.Items.Add(di.GetDirectories)
    22. Next
    23. End Sub


    LESEN

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

    VBSAmatuer schrieb:

    VB.NET-Quellcode

    1. My.Computer.FileSystem.DeleteDirectory(...)
    Ohne das jetzt alles gelesen zu haben:
    In welcher Reihenfolge werden denn die Verzeichnisse gelöscht (sollen werden)?
    Wenn Du erst die Root und dann ein Unterverzeichnis löschst, knallt es.
    Also stets testen, ob es noch vorhanden ist.
    Nimm IO.FileInfo() und IO.DirectoryInfo() zum 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!
    @RodFromGermany

    Mit IO.DirectoryInfo() hatte ich es schon versucht, nur ich bekomme die Meldung "Ungültige Konvertierung von Typ DirectoryInfo() in Typ String".
    Also glaube ich nach der Errormeldung zufolge dass IO.DirectoryInfo nicht mit einem String von einer Listbox arbeiten kann. Vielleicht ToString?

    Also wenn ich die Datein kopiere, listet er alle anderen Dateien auf, auch die nichts mit dem Modordner zutun haben, soll er aber nicht. Habe beim kopieren IO.Path genommen, keine Änderung.

    Aber das ist wenigstens mal eine Antwort vom Meister.

    VBSAmatuer schrieb:

    nicht mit einem String von einer Listbox arbeiten kann
    Pack keine Strings in die ListBox, pack FileInfo-Listen in die ListBox:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim fi() As IO.FileInfo = New IO.DirectoryInfo("c:\temp").GetFiles("*.*", IO.SearchOption.AllDirectories)
    4. Me.ListBox1.DataSource = fi
    5. End Sub
    6. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    7. If CheckBox1.Checked Then
    8. Me.ListBox1.DisplayMember = "FullName"
    9. Else
    10. Me.ListBox1.DisplayMember = "Name"
    11. End If
    12. End Sub
    13. Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
    14. Dim fi As IO.FileInfo = CType(ListBox1.SelectedItem, IO.FileInfo)
    15. MessageBox.Show(fi.FullName)
    16. End Sub
    17. End Class
    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!