Eine datei löschen, eine andere einfügen? (+Backup)

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von VBLukas.

    Eine datei löschen, eine andere einfügen? (+Backup)

    Und schon wieder ich.. :)

    Wie bekomme ichs hin das eine bestimmte datei gelöscht wird und durch eine andere ersetzt wird?

    genauer gesagt gehts darum das falls das modden eines bestimmten spieles fehlgeschlagen ist soll das Programm eine bestimmte datei in dem spieleordner löschen und durch eine "cleane" ungemoddete austauschen.
    also
    1. Wie lösche ich mit vb dateien ?
    und
    2. Wie kann ich in dem Programm eine (.jar) datei haben die ich dann anstelle der gelöschten einfügen kann ?

    danke :)

    EDIT: Mir ist gerade eingefallen, es währe besser wenn ich besagte datei noch "clean" backuppen kann, also anstatt das die .jar irgendiwe in dem programm gespeichert wird muss ich erst ein backup anlegen sodass das programm die .jar um die es geht an einen bestimmten ort (vorzugsweise installationsordner meines programmes) zu kopieren :)
    zu 1)

    VB.NET-Quellcode

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

    Unter Vista/7 werden dafür glaube ich Adminrechte gebraucht. Bin mir aber nicht 100%ig sicher.

    zu 2)
    versteh ich nicht.

    Edit: Verstehe ich es richtig, das du eine Art "Bereiniger" für ein Spiel machen willst? Leg dir doch von dem kompletten Spieleordner eine Kopie an. Bei Bedarf werden die Dateien einfach kopiert bzw. mit einer funktionierenden umgetauscht.

    (Eigentlich ist es ja selbstverständlich, von allem, was man moddet, vorher ein Backup zu machen, aber egal :D)

    mfg,
    Lukas.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    danke für deine antwort schonmal ;)

    aber es geht ja darum das das programm ein backup von der datei macht die beim modden verändert wird
    weil bei dem spiel liegt diese datei im appdata drin und das findet nicht jeder, deswegen sollte das das programm machen, von mir aus kann der im selben rodner auch das backup anlegen, hauptsache wenn ich auf einen cmd drücke kopiert er die .jar und fügt sie in einen ordner namens "Backup" neben der .jar um die es geht ein.
    Bei klick auf einen 2. cmd löscht er die gemoddete .jar und kopiert stattdessen das backup dorthin :)
    Okay. Ich würde es über ne kleine Form mit einer TextBox lösen. Dateinamen eingeben, auf einen Button klicken und die datei wird in einen neuen Unterordner Backup/ kopiert. Zurückverschieben muss dann halt manuell von statten gehen, aber das sollte ja kein Problem sein.

    Alternativ kann man dafür auch einen Button machen. Dafür müsste geprüft werden, ob diese datei im Backup-Ordner existiert.


    btw, was willst du da bitte mit dem CMD? Und seit wann brauch man nur auf den zu klicken, damit er etwas macht? ?(

    mfg,
    Lukas
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    sry ich habs TEILWEISE geschafft :D

    Quellcode

    1. Private Sub CmdBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdBackup.Click
    2. Dim Res As String
    3. Dim Tar As String
    4. Res = "c:\users\[mein Konto]\Desktop\bla.txt"
    5. Tar = "c:\users\[mein Konto]\Desktop\Test\bla.txt"
    6. My.Computer.FileSystem.CopyFile(Res, Tar)
    7. End Sub


    als beispiel
    so bekomme ich die bla.txt gebackuppt per klick in einen neuen ordner der sich selbst erstellt

    das löschen und ersetzen ist auch kein problem

    einziges problem noch:
    der Benutzername ist an jedem rechner anders, und Appdata liegt beim pfad hinter dem benutzernamen, also auf meinen eigenen rechner komm ich mit meinen Benutzernamen gut klar, aber wenn ich das programm auf anderen rechnern ausprobiere stimmt natürlich der Benutzername nichtmehr :(
    gibt es einen anderen weg den Pfad in eigene dateien - appdata und tiefer zu lenken ?

    Danke bisher schonmal, du hast mir viel geholfen :)

    EDIT: btw, mit cmd meine ich Commandbutton (so haben wirs in der schule gelernt) also ganz normal Button :)
    Finde den Usernamen doch über Environment.Username heraus und setze ihn als String in den Pfad ein.

    Sry, aber "cmd" steht für mich eindeutig für DEN Cmd. cmd.exe ;)

    mfg,
    Lukas.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    sry ich bin absoluter newbie, ich hab nicht die geringste ahnung was du mir damit sagen willlst :D

    ich denke mal ich soll eine variable setzen (string)
    variable = environment.username

    und dann in den pfad variable an stelle des benutzernamens einfügen ?
    und die variable nenne ich halt Username oder so ?
    Greetz ;)

    Chrismettal schrieb:

    sry ich bin absoluter newbie, ich hab nicht die geringste ahnung was du mir damit sagen willlst :D

    ich denke mal ich soll eine variable setzen (string)
    variable = environment.username

    und dann in den pfad variable an stelle des benutzernamens einfügen ?
    und die variable nenne ich halt Username oder so ?
    Greetz ;)



    VB.NET-Quellcode

    1. dim username as string = environment.username


    Und dann entsprechend einsetzen.

    mfg,
    Lukas.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    So hab ichs jetzt gemacht
    aber wenn ich dann

    Quellcode

    1. Private Sub CmdBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdBackup.Click
    2. Dim Res As String
    3. Dim Tar As String
    4. Dim Name As String
    5. Res = "c:\users\Name\Desktop\bla.txt"
    6. Tar = "c:\users\Name\Desktop\Test\bla.txt"
    7. Name = Environment.UserName
    8. My.Computer.FileSystem.CopyFile(Res, Tar)
    9. End Sub


    eingebe findet er die datei nicht ? :huh:
    Es wäre nützlich den String zu definieren, bevor man ihn verwendet ;)

    mfg,
    LUkas
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    das versteh ich ja jetzt noch weniger o.o
    also
    dim name as string
    my.user.name.tostring(name)

    und dann den pfad eingeben wie eben ?

    EDIT: also so wie ich gerade gesagt hab funktionierts schonmal nicht :D
    findet die datei immer noch nicht.. :( sie ist aber definitiv noch am angegebenen pfad
    Private Sub CmdBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdBackup.Click
    Dim Res As String
    Dim Tar As String
    Dim Name As String
    Dim Name as String = Environment.UserName
    Res = c:\users\" & Name & "\Desktop\bla.txt"
    Tar = "c:\users\" & Name & "\Desktop\Test\bla.txt"

    My.Computer.FileSystem.CopyFile(Res, Tar)
    End Sub

    Du musst den String doch erst etwas zuweisen (hellrosa) bevor du ihn verwenden kannst (dunkelrosa). Ansonsten sucht dein Programm in die Leere. ;)


    Edit: Fehler behoben.

    mfg,
    Lukas
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Versuch es mit dem editierten Code noch einmal. Hab vergessen, den Username in den Pfad einzusetzen. So müsste es nun gehen.

    Trotzdem bleibt der String in deiner version leer. Zwar "erstellst" du ihn vor dem Aufruf, aber er kriegt erst danach einen Wert, nämlich den Benutzernamen. Und ohne den gehts nun mal nicht. :P

    mfg,
    Lukas
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Bitteschön, gerngeschehen :)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.