Inhalt einer Textdatei löschen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von PhoenixBlaster.

    Inhalt einer Textdatei löschen

    Hi

    Ich hab mal die Frage wie man den Text aus einer Textdatei löschen kann. Ich habe im Internet nur so was komisches gefunden:

    VB.NET-Quellcode

    1. set fso = createobject("scripting.filesystemobject")
    2. Path=dir("C:\...\202_*_set.log")
    3. While Path > ""
    4. If Path <> "." And Path <> ".." Then
    5. If msgbox("set.log wirklich löschen",292) = vbYes then
    6. fso.deletefile Path
    7. fso.createtextfile Path, 2, True
    8. msgbox "set.log gelöscht", 64
    9. Else
    10. msgbox "set.log nicht gelöscht", 64
    11. End if
    12. End If
    13. f=dir
    14. Wend


    Was in VB.NET 2010 überhaupt nicht funktioniert. Alter Code?

    Kennt ihr eine Seite wo erklärt wird wie nur der Inhalt einer Datei gelöscht wird?

    MFG PhoenixBlaster :)
    Lösch doch den Inhalt, indem Du die Datei löschst. Oder schreib einfach einen leeren String in die Datei. Den Code kannst Du jedenfalls in die Tonne treten.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    An SpaceyX:
    Ja, diesen Code hab ich hier im Forum gefunden, hab aber auch gemerkt das der mehr als Schrott ist.

    Das Problem ist wenn ich die Datei lösche ist sie ja nicht vollkommen verschwunden und man kann sie einfach wiederherstellen, wenn ich aber den Text lösche kommt keiner dran.

    Oder kennst du einen Code mit dem man wirklich sicher Dateien löschen kann. Zum Beispiel mit "US DoD 5220 .22-M ECE

    An nafets3646:
    Ja, die IO.FileInfo-Klasse hab ich mur auch schon angeguckt aber hab dort nur "AppendText" und "CreateText" gefunden aber nichts wie "DeleteText" oder "ClearText".
    Soweit ich weiß, ist der Vorgang bei solchen Datenschreddern folgendermaßen:
    Schritt 1: Du bestimmst die Größe der Datei (in Bytes)
    Schritt 2: Du Löschst den Inhalt der Datei
    Schritt 3: Du beschreibst die Datei mit Randomchars (zufällige Zeichen), Für jedes Byte Dateigröße ein Randomchar
    Schritt 4: Du löschst die Datei
    Schritt 2 und 3 kannst du beliebig oft wiederholen.
    Dir ist bewusst, dass du einfach den Text der Datei in einen Leeren String umwandeln kannst? ...
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    PhoenixBlaster schrieb:

    Was in VB.NET 2010 überhaupt nicht funktioniert. Alter Code?

    Stell dir vor das .NET-Framework ist ein Rennwagen und du befüllst den Tank mit Wasser. Das geht nicht gut. Höre auf in VBA oder VB6 zu denken und greife auf moderne Mittel zurück: File Class, speziell File.WriteAllText. Wie sicher das ganze in Hinblick auf Datenschredderung ist, kann ich dir allerdings nicht sagen.

    PhoenixBlaster schrieb:

    Wie?

    Überschreiben. Die Methode dafür habe ich dir gerade genannt.
    „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.
    Schau dir mal das an, das sollte eigentlich für dein Vorhaben grundsätzlich mal genügen, Funktionen wie das vollschreiben mit Randomchars kannst du auch aus dem Code ableiten:

    C-Quellcode

    1. //Dient nur zu Testzwecken, erstellt eine Datei
    2. private void button1_Click(object sender, EventArgs e)
    3. {
    4. //Pfad erstellen
    5. string path = System.IO.Path.Combine(Application.StartupPath, "test.txt");
    6. //Falls Datei schon vorhanden, einfach löschen
    7. if (System.IO.File.Exists(path))
    8. System.IO.File.Delete(path);
    9. //Datei beschreiben
    10. using (System.IO.StreamWriter sw = System.IO.File.CreateText(path))
    11. {
    12. sw.Write("Hallo Welt");
    13. }
    14. }
    15. //Datei löschen
    16. private void button2_Click(object sender, EventArgs e)
    17. {
    18. //Pfad erstellen
    19. string path = System.IO.Path.Combine(Application.StartupPath, "test.txt");
    20. //Prüfen, ob Datei überhaupt existiert
    21. if (System.IO.File.Exists(path) == false)
    22. throw new System.IO.FileNotFoundException();
    23. //Dateiinhalt löschen
    24. System.IO.File.WriteAllText(path, string.Empty);
    25. //Datei löschen
    26. System.IO.File.Delete(path);
    27. }

    Ich habe extra noch überall die Namespaces dazugeschrieben, wenn sie nicht standardmäßig importiert sind.