Пропуск системных разрешений файлов VB.Net

Я начал создавать файловый менеджер, который сканирует папку, выбранную пользователем, через folderbrowserdialog в vb.net, извлекает расширения каждого файла в каждом каталоге или подкаталоге с помощью метода GetFiles() с SearchOption.AllDirectories. У меня возникает UnauthorizedAccessException, когда он сканирует папку корзины на логическом диске, в то время как я видел такие программы, как WinRar или R-Studio Scanning, и показываю каждый каталог без исключения или ошибки. Ниже приведен мой код:

Public Sub WriteExtentionsToFile()
    Try
        Title_Window.FolderBrowserDialog.ShowDialog()
        Dim Path As String = Title_Window.FolderBrowserDialog.SelectedPath

        'Getting FilesNames

        Dim FileNames As String() = GetFilesNames(Path)
        Title_Window.LblStatusBar.Text = "File Names Saved"
        Dim MaximumForProgressBar As Integer = FileNames.Length
        Title_Window.ToolStripProgressBar1.Maximum = MaximumForProgressBar
        Title_Window.ToolStripProgressBar1.Step = 1

        'Getting Extentions

        Dim ExtentionsList As New List(Of String)
        For Each item In FileNames
            ExtentionsList.Add(System.IO.Path.GetExtension(item))
        Next

        'Deleting Duplicate Extentions

        Dim NoDuplicateExtentionList As New List(Of String)
        Dim ExtentionReadFromFile As String() = ReadExtentionsFromFile()'Another Function in my Class Which Reads previously saved extentions in a file and store them in an array
        For Each item In ExtentionReadFromFile
            NoDuplicateExtentionList.Add(item)
        Next
        For Each E In ExtentionsList
            Dim LastIndexOfDot As Integer = E.LastIndexOf(".")
            E = E.Remove(0, LastIndexOfDot + 1)
            If NoDuplicateExtentionList.Contains(E.ToLower) = False Then
                NoDuplicateExtentionList.Add(E.ToLower)
                My.Computer.FileSystem.WriteAllText("d:\ExtentionsList.txt", E.ToString & vbCrLf, True)

            End If
        Next
        MessageBox.Show("Writing Process Completed", "Success")

    Catch ex As UnauthorizedAccessException
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.AbortRetryIgnore
        Dim result As DialogResult
        MessageBox.Show(ex.ToString, "Access Denied", Buttons)
        If result = Windows.Forms.DialogResult.Ignore Then
          'What should be Done Here????
        ElseIf result = Windows.Forms.DialogResult.Abort Then
         'What should be Done Here????
        Else
         'What should be Done Here????
        End If
    Catch ex As Exception
        MessageBox.Show(ex.ToString)
    End Try
End Sub

Каким должно быть решение этой проблемы? Это о получении разрешений через класс FileIoPermission или что-то еще??

0 ответов

Другие вопросы по тегам