#vb.net
#vb.net
Вопрос:
У меня есть выпадающий список, который позволяет пользователю перемещать файл, содержащий определенное ключевое слово, из одного каталога в другой. На данный момент я использую свою собственную папку documents, пока не найду универсальный путь для папки documents. Мой первый выпадающий вариант — удалить, а второй — переместить их. Однако любой из выбранных мной файлов удаляет файл, и мне было интересно, может ли кто-нибудь сказать мне, почему / как это исправить.
Я попытался использовать функцию перемещения самостоятельно, закомментировав функцию удаления и используя второй вариант в качестве собственного оператора, и он все еще удаляет, насколько я могу судить.
Private Sub btnGo_Click(sender As Object, e As EventArgs) Handles btnGo.Click
Dim filepath = IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
txtPathBox.Text)
Dim keyword As String = boxKeyword.Text
If boxOption1.SelectedItem = "Delete" Then
Dim files = From fl In IO.Directory.GetFiles(filepath)
Where fl.Contains(keyword)
Select fl
For Each fl In files
IO.File.Delete(fl)
Next
ElseIf boxOption1.SelectedItem = "Archive" Then
Dim files = From fl In IO.Directory.GetFiles(filepath)
Where fl.Contains(keyword)
Select fl
For Each fl In files
My.Computer.FileSystem.MoveFile(fl, "C:UsersLeeDocumentsArchived", True)
Next
End If
End Sub
Комментарии:
1. Вы отладили код, т. е. установили точку останова и выполнили пошаговое выполнение кода и проверили состояние на каждом шаге? Если нет, то слишком рано публиковать вопрос здесь. Если это так, вы опустили всю необходимую информацию, которую обнаружили при этом. Если вы не знаете, как правильно отлаживать, сейчас самое время научиться.
2. Я уже упоминал, что я пытался запустить его без моего первого оператора if, чтобы посмотреть, будет ли он выполняться так же.
3. Вторым параметром
FileSystem.MoveFile
является путь к файлу назначения, а не папка назначения. С другой стороны, я предлагаю вам использоватьFile.Move
вместо этого.My.Computer
Объект доступен только в VB, покаFile.Move
является стандартом framework.4. «Я упоминал, что …» . На самом деле это не имеет отношения к тому, отладили ли вы его. Чаще всего вы не можете устранить проблемы, просто прочитав код или просмотрев приложение. Вы должны на самом деле наблюдать за кодом по мере его выполнения и по ходу дела проверять состояние приложения. Это отладка, и она требует установки точек останова в вашем коде и использования различных инструментов, предоставляемых IDE, например Watch и Immediate Windows. Если вы этого не сделали, значит, вы не отладили, а если вы не отладили, то публиковать здесь еще слишком рано.