Vb.net 如何像卸载程序一样关闭资源管理器正在使用的文件夹

Vb.net 如何像卸载程序一样关闭资源管理器正在使用的文件夹,vb.net,Vb.net,我知道大多数程序的卸载程序,至少因为Windows7可以删除程序文件夹,即使它在资源管理器中打开。卸载资源管理器后,只需刷新并自动转到“程序文件”文件夹 如何做同样的事情告诉资源管理器在编程语言中不需要使用文件夹,特别是在VB.net中?好的。因此,您希望资源管理器转到当前文件夹的父文件夹。如果当前文件夹为c:\windows\fonts,则要将其更改为c:\windows 下面的代码应该可以做到这一点。。查看注释,了解一些代码的解释 Private Sub ChangeExplorer

我知道大多数程序的卸载程序,至少因为Windows7可以删除程序文件夹,即使它在资源管理器中打开。卸载资源管理器后,只需刷新并自动转到“程序文件”文件夹


如何做同样的事情告诉资源管理器在编程语言中不需要使用文件夹,特别是在VB.net中?

好的。因此,您希望资源管理器转到当前文件夹的父文件夹。如果当前文件夹为c:\windows\fonts,则要将其更改为c:\windows

下面的代码应该可以做到这一点。。查看注释,了解一些代码的解释

    Private Sub ChangeExplorerToParentFolderOf(currentFolder As String)
    Dim shellWindows As SHDocVw.ShellWindows = New SHDocVw.ShellWindows
    Dim filename As String
    Dim operationCompleted As Boolean = False
    currentFolder = "file:///" & currentFolder.Replace("\", "/").ToLower
    'Searches all open explorer windows that are pointing to
    'the currentFolder parameter and if found, navigates to
    'its parent folder.
    '
    'if successful, sets the operationCompleted cariable to true
    For Each ie As SHDocVw.InternetExplorer In shellWindows
        filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower()
        If filename.Contains("explorer") And ie.LocationURL.ToString.ToLower = currentFolder Then
            Dim parentFolder As String = currentFolder.Remove(currentFolder.LastIndexOf("/"))
            ie.Navigate2(parentFolder)
            operationCompleted = True
        End If
    Next
    'If no instance of explorer is pointing to the currentFolder (operationCompleted=false),
    'show a messagebox to say so
    If operationCompleted = False Then
        MessageBox.Show("No instance of Windows Explorer exists that" & vbCrLf & "points to " & currentFolder)
    End If
End Sub

Directory.DeleteC:\Program Files\MyFolder,对吗?我不认为您需要做什么特别的事情,但为了删除程序文件UAC下的文件夹,应用程序可能必须以管理员身份运行。@马克,对不起,我需要澄清问题:我的目标不是删除文件夹,但调用相同的行为:使资源管理器转到上面的文件夹,因为类似文件夹不再存在。如果我理解您的意思,如果某个文件夹在资源管理器中打开并在树状视图中被选中,并且您以编程方式删除该文件夹,是否希望所选文件夹更改为父文件夹?不确定以前的版本,但这种行为会在Windows10Build1703中自动发生。刚刚检查过。@DavidWilson,我已经更新了问题,请看我之前的评论。我实际上不想删除文件。只是把它从浏览器中释放出来。谢谢,但由于某些原因,它对我不起作用。对不起。出于某种原因,我成功地粘贴了不是最终答案的代码。我已经更新了。