【问题标题】:How do I specify the initial path shown in the FolderBrowserDialog using PowerShell如何使用 PowerShell 指定 FolderBrowserDialog 中显示的初始路径
【发布时间】:2019-06-05 23:02:33
【问题描述】:
Function Get-Folder($initialDirectory)
{
    [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null

    $foldername = New-Object System.Windows.Forms.FolderBrowserDialog
    $foldername.Description = "Select a folder"
    $foldername.rootfolder = "NetworkShortcuts"

    if($foldername.ShowDialog() -eq "OK")
    {
        $folder += $foldername.SelectedPath
    }
    return $folder
}

$a = Get-Folder

如何指定初始目录而不是 Desktop 或 NetworkShortcuts。我想指定像 F:\Folder1

这样的路径

【问题讨论】:

    标签: powershell folderbrowserdialog


    【解决方案1】:

    这是我保留的功能,以备不时之需:

    Function Get-FolderPath{
    [CmdletBinding()]
    Param(
        [String]$Description,
        [String]$InitialDirectory = "C:\",
        [Switch]$NewFolderButton = $false)
    
        [void][System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
        $FolderBrowserDialog = New-Object System.Windows.Forms.FolderBrowserDialog
        $FolderBrowserDialog.SelectedPath = $InitialDirectory
        $FolderBrowserDialog.Description = $Description
        $FolderBrowserDialog.ShowNewFolderButton = $NewFolderButton
        If($FolderBrowserDialog.ShowDialog() -eq "OK"){
            $FolderBrowserDialog.SelectedPath
        }
    }
    

    用法很简单:

    $a = Get-FolderPath -Description "Select a folder" -InitialDirectory "F:\Folder1" -NewFolderButton
    

    如果您不希望显示该按钮,也可以省略 -NewFolderButton

    【讨论】:

      【解决方案2】:

      将您的rootfolder 换成SelectedPath,这应该就是您要找的东西。

      Function Get-Folder($initialDirectory)
      {
          [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null
      
          $foldername = New-Object System.Windows.Forms.FolderBrowserDialog
          $foldername.Description = "Select a folder"
          $foldername.SelectedPath = "F:\Folder1"
      
          if($foldername.ShowDialog() -eq "OK")
          {
              $folder += $foldername.SelectedPath
          }
          return $folder
      }
      
      $a = Get-Folder
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多