Я ищу некоторые рекомендации по получению функции, работающей над программой, над которой я работаю.Ищете руководство для программы vb.net для очистки файловых каталогов temp для каждого пользователя
Функция, за которую я застрял, предназначен для удаления всех файлов из нескольких каталогов на удаленном компьютере для всех профилей пользователей на этом компьютере.
На данный момент я пытаюсь получить вывод в своем текстовом поле со всеми файлами в каталогах и подкаталогах, прежде чем добавить файл .delete().
Все «элементы» отображаются в виде символов одной буквы, поскольку они разделяют каждую букву в пути к отдельному элементу (вероятно, так, как я делал For..Each
).
Я знаю, что делаю несколько ошибок noobie, так как я очень новичок в VB.net, и я все еще очень нахожусь на этапе обучения, но я ищу некоторое руководство.
Я искал и потянул кусочки вместе, чтобы заставить его работать, но поразил стену, любая помощь приветствуется!
Текущий код:
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
Я знал, что это должно быть что-то легкое, я пропал без вести, спасибо Скотт! - Дополнительный вопрос, если можно, я замечаю, что когда я запускаю его таким образом, я получаю только файлы во всех каталогах, я также не видел каталогов get, когда я располагаю точками в каталогах, так или иначе, чтобы получить все файлы внутри все подкаталоги включены? Также спасибо за подсказку «Option Strict», я получу эту реализацию :) –
Нет, вам нужно будет рекурсивно получить каталоги в каждом каталоге и получить файлы в каждом каталоге. Таким образом, вам понадобится еще один метод - вы передадите ему каталог, затем он получит все подкаталоги в этом каталоге и называет себя. Таким образом, он продолжает просматривать все подкаталоги, пока их больше нет. –
Вот [пример] (https://support.microsoft.com/en-us/kb/306666) и [еще один] (http://www.coderslexicon.com/playing-with-recursive-directory-diving -в-VB-нетто /). –