Comment puis-je utiliser correctement le FolderBrowserDialog en Powershell
Donc je suis encore assez nouveau pour Powershell et je suis en train d'écrire un script qui permet à l'utilisateur de sélectionner un fichier ou un dossier et ensuite revenir les autorisations de sécurité pour dit dossier/fichier. Le problème est que je n'arrive pas à obtenir le chemin d'accès au fichier pour enregistrer en tant que variable pour être utilisé plus tard. Voici ce que j'ai à ce jour:
Function Get-Folder($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
$foldername = New-Object System.Windows.Forms.FolderBrowserDialog
$foldername.rootfolder = "MyComputer"
$foldername.ShowDialog()
if($foldername.ShowDialog() -eq "OK") {
$folder += $foldername.SelectedPath
}
}
Peut-être que je suis loin de cela, mais il va tirer vers le haut de la fenêtre pour sélectionner un fichier ou un dossier et me fait choisir deux fois et puis n'est-ce pas défini la variable comme le chemin d'accès au fichier. Encore une fois, je suis assez nouveau à ce genre de chose afin que je puisse être totalement faux, mais toute aide serait vraiment utile.
Merci!
OriginalL'auteur Ben_the_Terrible | 2014-09-05
Vous devez vous connecter pour publier un commentaire.
Le dossier sélecteur de fenêtre affiche deux fois parce que vous avez deux appels à
$foldername.ShowDialog()
. Supprimer la première, et ne laisser que celui à l'intérieur deif
.J'ai essayé d'exécuter votre code, et je suis sûr que
$folder
variable est en fait set. Si vous pensez qu'il n'est pas défini, vous faites quelque chose de mal. Par exemple, être conscient qu'il n'est visible qu'à l'intérieur de votreGet-Folder
fonction. Si vous avez besoin de l'utiliser à l'extérieur de la fonction, vous devez le retourner (return $folder
) et de l'affecter à une variable en dehors de la fonction. Par exemple:De cette façon, vous aurez votre dossier sélectionné dans la
$a
variable.OriginalL'auteur Vasily Alexeev
Vous devez ajouter "| Null" à la fin de la ligne
"[Le système.De la réflexion.L'Assemblée]::LoadWithPartialName("Le Système De.de windows.les formes")"
sinon, il y a un tas d'infos renvoyées par Get-Dossiers que vous ne voulez pas
Acclamations, Garth
OriginalL'auteur Garth