datei byteweise überschreiben -- bitte um hilfe

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von yellow.

    datei byteweise überschreiben -- bitte um hilfe

    guten tag zusammen,

    versuche gerade ein prog zu schreiben, was eine datei byteweise mit leerzeichen überschreibt und anschließend löscht.
    das alles geht über drag and drop..über die form...

    jetzt habe ich ein problem, das mit dem überschreiben geht alles, aber sobald ich die datei danach löschen will, geht es nicht..woran liegt das problem ?

    Quellcode

    1. Option Explicit On
    2. Imports System.IO
    3. Public Class Form1
    4. Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
    5. Dim filenames() As String
    6. Dim strfile As String
    7. Dim filesize As Long
    8. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    9. filenames = e.Data.GetData(DataFormats.FileDrop)
    10. strfile = filenames(0)
    11. If File.Exists(strfile) Then
    12. Dim open As New IO.StreamWriter(strfile)
    13. filesize = LOF(strfile)
    14. strfile = Space$(filesize)
    15. Kill(strfile) 'bis zum kill befehl geht alles, da hängt es .. ?!
    16. End If
    17. End If
    18. End Sub
    Kill ist generell nicht zu empfehlen, benutze lieber IO.File.Delete. Zudem ist der Code hier etwas besser:

    VB.NET-Quellcode

    1. Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
    2. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    3. Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
    4. For Each file As String In files
    5. Dim filesize As Integer = New IO.FileInfo(file).Length
    6. Dim bw As New IO.BinaryWriter(New IO.FileStream(file, IO.FileMode.Create))
    7. For i As Integer = 0 To filesize - 1
    8. bw.Write("0")
    9. Next
    10. bw.Close()
    11. IO.File.Delete(file)
    12. Next
    13. End If
    14. End Sub