Ich bin auf der Suche nach einer Anleitung für eine funktionierende Funktion für ein Programm, ich arbeite an.Suchen Sie nach Anleitung für vb.net Programm zu bereinigen temporäre Datei Verzeichnisse für jeden Benutzer
Die Funktion, auf der ich feststecke, soll alle Dateien aus mehreren Verzeichnissen auf einem Remotecomputer für alle Benutzerprofile auf diesem Computer entfernen.
Momentan versuche ich, meine Textbox mit allen Dateien in den Verzeichnissen und Unterverzeichnissen auszugeben, bevor ich file.delete() hinzugefügt habe.
Alle "Elemente" werden als ein Buchstabe Zeichen angezeigt, da es jeden Buchstaben im Dateipfad in ein separates Element trennt (wahrscheinlich die Art, wie ich die For..Each
gemacht habe).
Ich weiß, dass ich mehrere Anfängerfehler mache, da ich sehr neu bei VB.net bin und immer noch sehr viel in der Lernphase bin, aber ich suche nach einer Anleitung.
Ich habe Stücke gesucht und gezogen, um es zum Laufen zu bringen, aber ich habe eine Wand getroffen, jede Hilfe ist willkommen!
Aktuelle Code:
Private Sub Deltemp_Click(sender As Object, e As EventArgs) Handles Deltemp.Click
If Compname2.Text = "" Then
MessageBox.Show("You didn't enter anything in the Computername field, please enter something then try again.")
GoTo statementend
End If
Try
If My.Computer.Network.Ping(Compname2.Text, 1000) Then
PSoutput.Text = ""
Else
PSoutput.Text &= Compname2.Text + " is not connected to our network currently."
GoTo statementend
End If
PSoutput.Text = ""
Dim userpath As String = "\\" + Compname2.Text + "\c$\users\"
Dim tempu(7) As String
tempu(0) = "\AppData\Local\Temp\"
tempu(1) = "\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
tempu(2) = "\AppData\Local\Microsoft\Credentials"
tempu(3) = "\AppData\Local\Temporary Internet Files\"
tempu(4) = "\AppData\Roaming\Microsoft\Credentials"
tempu(5) = "\AppData\Roaming\SUN"
tempu(6) = "\AppData\Local\Apps\2.0"
Dim fsd As Object
fsd = FileIO.FileSystem.GetDirectories(userpath)
For Each user In fsd
Try
Dim filepaths = FileIO.SpecialDirectories.AllUsersApplicationData()
If user Like "*Default*" Or user Like "*.NET*" Or user Like "*All Users" Or user Like "*Public" Then
PSoutput.Text &= ""
Else
Dim Fullpath = user + tempu(7)
For Each item In Fullpath
FileIO.FileSystem.GetFiles(Fullpath)
PSoutput.Text &= item.ToString + " was found" & Environment.NewLine
Next
End If
Catch ex As Exception
PSoutput.Text &= "A file was skipped for being in use or an exception occured" & Environment.NewLine
End Try
Next
Catch
MessageBox.Show("The machine/ip entered doesn't exist on our network or is an invalid entry")
End Try
statementend:
End Sub
Ich wusste, dass es etwas sein musste, das ich vermisste, danke Scott !! - Zusätzliche Frage, wenn Sie könnten, merke ich, dass, wenn ich es auf diese Weise ich nur die Dateien in allen Verzeichnissen, ich habe auch keine get-Verzeichnisse, wenn ich Sourcedirectories, um alle Dateien im Inneren zu bekommen alle Unterverzeichnisse enthalten? Auch danke für den 'Option Strict' Tipp, ich werde das implementieren :) –
Nein, Sie müssten rekursiv die Verzeichnisse in jedem Verzeichnis holen und die Dateien in jedem Verzeichnis holen. Sie werden also eine weitere Methode brauchen - Sie übergeben ihr ein Verzeichnis, dann werden alle Unterverzeichnisse in diesem Verzeichnis abgerufen und sie ruft sich selbst auf. Auf diese Weise geht es durch alle Unterverzeichnisse, bis es keine mehr gibt. –
Hier ist [ein Beispiel] (https://support.microsoft.com/en-us/kb/306666) und [noch eins] (http://www.coderslexicon.com/playing-with-recursive-directory-diving) -in-vb-net /). –