Dateien löschen, die schreibgeschützt sind

19/07/2008 - 22:48 von Peter Schirmer | Report spam
Hallo zusammen,

ich habe in meinem Programm eine Deinstallationsroutine eingebaut, die
einfach das Verzeichnis löschen soll. Das funktioniert auch
weitestgehend, allerdings klemmt es bei einer Datei: ADVPACK.DLL Es
kommt die Meldung, dass die Datei schreibgeschützt sei.

Ich habe mit dim Verz as new directoryinfo("C:\Temp")
verz.delete(true)

versucht, den Inhalt zu löschen. Aber es geht so nicht richtig.

Wie lösche ich die Datei ohne Rückfrage?

Gruß
Peter
 

Lesen sie die antworten

#1 Karsten Sosna
20/07/2008 - 07:13 | Warnen spam
ich habe in meinem Programm eine Deinstallationsroutine eingebaut, die
einfach das Verzeichnis löschen soll. Das funktioniert auch weitestgehend,
allerdings klemmt es bei einer Datei: ADVPACK.DLL Es kommt die Meldung,
dass die Datei schreibgeschützt sei.

Ich habe mit dim Verz as new directoryinfo("C:\Temp")
verz.delete(true)

versucht, den Inhalt zu löschen. Aber es geht so nicht richtig.

Wie lösche ich die Datei ohne Rückfrage?



Hallo Peter,
zum Löschen von Dateien gibt es mehrere Möglichkeiten:

File.Delete
FileInfo.Delete
My.Computer.FileSystem.DeleteFile
API DeleteFile(Kernel32.dll)
FileSystemObject.DeleteFile(Scripting-Runtime-Library)

Ob da irgendetwas so funktioniert wie Du es willst musst Du ausprobieren.
Ansonsten gibt es noch die Möglichkeit über FileInfo.Attributes das
Schreibattribute zurückzusetzen. Danach sollte das Löschen möglich sein, es
sei denn es ist auch noch eine Systemdatei etc. Aber auch dann eigentlich
nur das dementsprechende Attribute zurücksetzen.
\\\
Dim di = New IO.DirectoryInfo("C:\Temp")
For Each fi In di.GetFiles("*.*", IO.SearchOption.AllDirectories)
If (fi.Attributes And IO.FileAttributes.ReadOnly) =
IO.FileAttributes.ReadOnly Then
fi.Attributes = fi.Attributes Xor IO.FileAttributes.ReadOnly
End If
Next
di.Delete(True) 'Löscht das Verzeichnis!!!
///
Gruß Scotty

Ähnliche fragen