【问题标题】: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