[VB.NET] User auslesen und bestimmte Dateien löschen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 61 Antworten in diesem Thema. Der letzte Beitrag () ist von Drahuverar.
-
-
Gather schrieb:
Ich habe es dir doch schon eins zu eins in meinem vorherigen Post erklärt..
Ach verdammt, ich habe es an die falsche Stelle geschrieben -.- tut mir leid!
EDIT: Trotzdem kann ich den Wert nicht in meine TextBox ausgeben...
-
Wie gesagt.. du benutzt zu erste die Funktion
GetFolderSize
Diese speicherst du in einer Variabel:
z.b:
Anschließend löscht Benutzt du die FunktionClearTempFolder
Du errechnest dir nun erneut die Größe:Dim s2 as Long = GetFolderSize(blablabla...)
. Nun Rechnest du nurnochs2-s1
und tada du hast die gelöschten Bytes.
Anzeigen tust du sie mitTextboxWieAuchImmerSieHeißt.Text = (s2 - s1).ToString()
. Aber wenn es bei dir beim Ausgeben eines Wertes in einer Textbox scheitert, solltest du dir wirklich einmal die Grundlagen ansehen. -
Gather schrieb:
Wie gesagt.. du benutzt zu erste die FunktionGetFolderSize
Diese speicherst du in einer Variabel:
z.b:
Anschließend löscht Benutzt du die FunktionClearTempFolder
Du errechnest dir nun erneut die Größe:Dim s2 as Long = GetFolderSize(blablabla...)
. Nun Rechnest du nurnochs2-s1
und tada du hast die gelöschten Bytes.
Anzeigen tust du sie mitTextboxWieAuchImmerSieHeißt.Text = (s2 - s1).ToString()
. Aber wenn es bei dir beim Ausgeben eines Wertes in einer Textbox scheitert, solltest du dir wirklich einmal die Grundlagen ansehen.
Hallo @Gather,
sorry, dass ich dir so auf den Geist gehe. Mir hat das mit dem String wieder gefehlt... -
@Gather ich habe aber noch eine Frage...
mir wird in der TextBox jetzt nur die gelöschte Datenmenge von dem User der das Programm ausgeführt hat angezeigt, probiere schon die ganze Zeit die komplette Menge anzeigen zu lassen - bekomme es aber nicht hin... Hier der bisherige Code:
VB.NET-Quellcode
- Private Sub ButtonDatenLoeschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDatenLoeschen.Click
- Dim s1 As Double = GetFolderSize(System.IO.Path.GetTempPath()).ToString
- For Each item In ListBoxGefundeneUser.Items 'Für jeden gefundenen Benutzer ..\Temp leeren
- ClearTempFolder(item)
- Next
- TextBoxStatus.Text = "Temporäre Dateien aller lokalen Benutzer gelöscht." 'Status im Textfeld ändern
- If ButtonUserAbfragen.Enabled = False Then 'Button aktiveren oder deaktivieren
- ListBoxGefundeneUser.Items.Clear()
- ButtonUserAbfragen.Enabled = True
- Else
- ButtonUserAbfragen.Enabled = False
- End If
- Dim s2 As Double = GetFolderSize(System.IO.Path.GetTempPath()).ToString
- For Each item In ListBoxGefundeneUser.Items
- GetFolderSize(item)
- TextBoxDatenMenge.Text = GetFolderSize(item)
- Next
- Dim Ergebnis As Double = ((s1 - s2) / 1000000)
- If Ergebnis <= 0 Then
- TextBoxDatenMenge.Text = "Bereits alle temporären Dateien gelöscht!"
- Else
- TextBoxDatenMenge.Text = Ergebnis.ToString
- End If
- End Sub
-
MS95 schrieb:
die komplette Menge
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! -
Hallo @RodFromGermany,
ich weiß nicht ganz, ob es das ist was ich suche... Also ich möchte praktisch die Größe von allen Temp-Ordner der gefundenen User in einer Variable speichern - anschließend sollen die temporären Dateien gelöscht werden und danach sollen wieder die Größen der Temp-Ordner der gefundenen User ermittelt werden und in einer Variable gespeichert werden. Wenn das getan ist, will ich die gelöschte Datenmenge ermitteln, indem ich die Variablen subtrahiere.
Mein Problem ist, dass ich nicht weiß wie ich das mit dem Ermitteln der Größen für ALLE User mache - mit dem ausführendem User ist es kein Problem... -
@MS95 Sorry, falsch verstanden.
Trenne mal strikt Deine Probleme.- Zugriff auf die Ordner anderer User überhaupt,
- Manipulation der Dateien,
- Dokumentation der Manipulation.
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! - Zugriff auf die Ordner anderer User überhaupt,
-
-
@MS95 Mit welchem Code löschst Du die Dateien?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! -
Oben habe ich den Code gepostet, hier aber nochmal genau der Ausschnitt:
Hier die Function ClearTempFolder:
VB.NET-Quellcode
- Private Function ClearTempFolder(ByVal User As String) As Boolean
- Dim dir As String = System.IO.Path.GetTempPath().Replace(Environment.UserName, User)
- If Directory.Exists(dir) Then
- Try
- For Each subDir In Directory.GetDirectories(dir)
- Try : Directory.Delete(subDir, True) : Catch : End Try
- Next
- For Each f In Directory.GetFiles(dir) : Try : File.Delete(f) : Catch : End Try
- Next
- Catch ex As Exception : Return False : Exit Function
- End Try
- Return (True)
- Else : Return False
- End If
- End Function
-
@MS95 Probier mal dies:
Spoiler anzeigen VB.NET-Quellcode
- Private Function ClearTempFolder(ByVal User As String) As Boolean
- Dim dir As String = System.IO.Path.GetTempPath().Replace(Environment.UserName, User)
- Dim space As Long = 0
- If Not Directory.Exists(dir) Then
- Return False
- End If
- Try
- Dim files = New DirectoryInfo(dir).GetFiles("*.*", SearchOption.AllDirectories)
- Dim fileLength As Long
- For Each f In files
- Try
- fileLength = f.Length
- f.Delete()
- space += fileLength
- Catch
- End Try
- Next
- For Each subDir In Directory.GetDirectories(dir)
- Try
- Directory.Delete(subDir, True)
- Catch
- End Try
- Next
- Catch ex As Exception
- Return False
- End Try
- MessageBox.Show(space.ToString)
- Return True
- End Function
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! -
-
MS95 schrieb:
möchte aber
Gib den Wert alsByRef
-Parameter zurück.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 schrieb:
@MS95 Probier mal dies:
Spoiler anzeigen VB.NET-Quellcode
- Private Function ClearTempFolder(ByVal User As String) As Boolean
- Dim dir As String = System.IO.Path.GetTempPath().Replace(Environment.UserName, User)
- Dim space As Long = 0
- If Not Directory.Exists(dir) Then
- Return False
- End If
- Try
- Dim files = New DirectoryInfo(dir).GetFiles("*.*", SearchOption.AllDirectories)
- Dim fileLength As Long
- For Each f In files
- Try
- fileLength = f.Length
- f.Delete()
- space += fileLength
- Catch
- End Try
- Next
- For Each subDir In Directory.GetDirectories(dir)
- Try
- Directory.Delete(subDir, True)
- Catch
- End Try
- Next
- Catch ex As Exception
- Return False
- End Try
- MessageBox.Show(space.ToString)
- Return True
- End Function
RodFromGermany schrieb:
MS95 schrieb:
möchte aber
Gib den Wert alsByRef
-Parameter zurück.
Und weil ich es nun schon seit ca. 2,5 Stunden nicht hinbekomme habe ich mich hier wieder gemeldet -
@MS95 Da fehlen ja elementare Grundlagen.
Spoiler anzeigen VB.NET-Quellcode
- Private Function ClearTempFolder(ByVal User As String, ByRef space As Long) As Boolean
- Dim dir As String = System.IO.Path.GetTempPath().Replace(Environment.UserName, User)
- space = 0
- If Not Directory.Exists(dir) Then
- Return False
- End If
- Try
- Dim files = New DirectoryInfo(dir).GetFiles("*.*", SearchOption.AllDirectories)
- Dim fileLength As Long
- For Each f In files
- Try
- fileLength = f.Length
- f.Delete()
- space += fileLength
- Catch
- End Try
- Next
- For Each subDir In Directory.GetDirectories(dir)
- Try
- Directory.Delete(subDir, True)
- Catch
- End Try
- Next
- Catch ex As Exception
- Return False
- End Try
- Return True
- End Function
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 schrieb:
@MS95 Da fehlen ja elementare Grundlagen.
Spoiler anzeigen VB.NET-Quellcode
- Private Function ClearTempFolder(ByVal User As String, ByRef space As Long) As Boolean
- Dim dir As String = System.IO.Path.GetTempPath().Replace(Environment.UserName, User)
- space = 0
- If Not Directory.Exists(dir) Then
- Return False
- End If
- Try
- Dim files = New DirectoryInfo(dir).GetFiles("*.*", SearchOption.AllDirectories)
- Dim fileLength As Long
- For Each f In files
- Try
- fileLength = f.Length
- f.Delete()
- space += fileLength
- Catch
- End Try
- Next
- For Each subDir In Directory.GetDirectories(dir)
- Try
- Directory.Delete(subDir, True)
- Catch
- End Try
- Next
- Catch ex As Exception
- Return False
- End Try
- Return True
- End Function
Wenn ich den Code von dir nehme bekomme ich diesen Fehler hier:
BC30455 Für den Parameter "space" von "Private Function ClearTempFolder(User As String, ByRef space As Long) As Boolean" wurde kein Argument angegeben.
-
MS95 schrieb:
diesen Fehler hier
Welche Parameter kommen hi und da vor bzw. nicht vor?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! -
-
@MS95 So was:
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!
-
Ähnliche Themen
-
4 Benutzer haben hier geschrieben
- MS95 (27)
- Gather (14)
- Drahuverar (12)
- RodFromGermany (9)