Sont PowerShell Tableaux simplement des tableaux .NET?

voix
4

Je crée un tableau d'objets de chaîne dans PowerShell qui doit être passé dans une Xceed méthode de la bibliothèque zip qui attend une chaîne [], mais je reçois un à chaque fois d'erreur. Je me demande si le tableau PowerShell est autre chose qu'un ensemble de .NET. Voici un code:

$string_list = @()
foreach($f in $file_list)
{
    $string_list += $f.FullName
}
[Xceed.Zip.QuickZip]::Zip(C:\new.zip, $true, $false, $false, $string_list)

L'erreur que je reçois, dit « Une erreur est survenue lors de l'ajout de fichiers dans le fichier zip. » Si je coder en dur dans des valeurs comme cela, il fonctionne:

[Xceed.Zip.QuickZip]::Zip(C:\new.zip, $true, $false, $false, test.txt, test2.txt, test3.txt)

Quelqu'un peut m'aider à trouver la solution? Je ne comprends pas ce que la différence serait ...

EDIT: Je l'ai testé et confirmé que mon tableau de string_list $ est composé d'objets System.String

Créé 26/08/2009 à 23:08
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
15

Lorsque vous spécifiez:

$string_list = @()

Vous avez donné aucune information de type PowerShell il crée un tableau de System.Object qui est un tableau qui peut contenir un objet:

PS> ,$string_list | Get-Member

   TypeName: System.Object[]

Essayez spécifier un type de tableau spécifique (tableau de chaînes) comme ceci:

PS> [string[]]$string_list = @()
PS> ,$string_list | Get-Member


   TypeName: System.String[]
Créé 26/08/2009 à 23:20
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more