在文件资源管理器中切换目录

在文件资源管理器中切换目录

最近我发现我很少使用 Windows 文件资源管理器的右侧窗格来操作文件夹,而且在处理文件夹内容时,它往往会分散我的注意力。左侧(导航)窗格是我与目录交互的地方。有没有一种直接的方法来建立一个切换按钮来显示和隐藏右侧窗格中的目录?这类似于视图菜单中显示/隐藏隐藏文件的切换按钮。

答案1

它不能通过 UI 完成,但有一组标志,文件夹标志,控制文件夹内容显示的某些方面。其中一个标志是:

FWF_NOSUBFOLDERS
值:0x80
0x00000080。不显示子文件夹。

您可以使用以下方式切换此标志电源外壳以及 shell.application com 对象,如该代码所示:

@((New-Object -com shell.application).Windows()).ForEach{
   If($_.Document.FolderFlags -band 0x80) {
       $_.Document.FolderFlags = $_.Document.FolderFlags -band ! 0x80 ; $_.Refresh()
   } Else {
       $_.Document.FolderFlags = $_.Document.FolderFlags -bor 0x80 ; $_.Refresh()
   }
}

如果你将上面的块复制到电源外壳控制台窗口并执行(即按enter),它将切换位,从而切换子文件夹的可见性,全部开放探索者视窗。在控制台中,按up arrowenter重复命令并恢复之前的状态。

  • 重要的:窗口关闭时,此标志的状态与文件夹视图一起保存。因此,如果您在隐藏文件夹的情况下关闭窗口,则下次您查看文件夹时,它们将被隐藏探索者。如果其他人使用您的计算机,这可能会造成混乱。

但如果这符合您的需求,并且您希望轻松访问该命令,您可以将其作为快捷方式的目标。命令的文本对于对话框来说太长 Create Shortcut,因此您也必须通过代码创建它:

# Edit path and shortcut name as desired
$lnkFilePath    = "$env:UserProfile\Desktop\Toggle subfolder visibility.lnk"
$sc             = (New-Object -com wscript.shell).CreateShortcut($lnkFilePath)
$sc.WindowStyle = 7   # Minimized
$sc.TargetPath  = 'powershell.exe'
$sc.Arguments   = '-NoProfile -Command "&{@((New-Object -com shell.application).Windows()).ForEach{ If($_.Document.FolderFlags -band 0x80) {$_.Document.FolderFlags = $_.Document.FolderFlags -band ! 0x80 ; $_.Refresh()} Else {$_.Document.FolderFlags = $_.Document.FolderFlags -bor 0x80 ; $_.Refresh()}}}"'
$sc.Save()

相关内容