Попытка переместить файл (ы) из одного каталога в другой по ключевому слову

#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. Если вы этого не сделали, значит, вы не отладили, а если вы не отладили, то публиковать здесь еще слишком рано.