Я видел это решение: Получить имя папки из полного пути к файлу
И был принят следующий ответ:
string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
Но это в C #.В настоящее время я пытаюсь .net перехватить этот метод и заставить его работать в powershell, но я не уверен, как правильно использовать объект.
Это то, что у меня сейчас:
$AppPath = "$null"
$PathArray = @()
$ParentFolderNames = @()
$DirObject = New-Object -TypeName System.IO
Get-ChildItem -Path $ServerPath | Select-Object FullName | ForEach-Object {
## $_.GetType()
$String = ("$_.").ToString()
$PathArray += $String.Split("=")[1]
}
foreach ($object in $PathArray){
## $ParentFolderNames += $object.Split("$\*")[1]
$ParentFolderNames += $DirObject.DirectoryInfo("$Object").Name
}
$ParentFolderNames
Я получаю сообщение об ошибке: «Вы не можете вызвать метод для выражения с нулевым значением».Однако $ object не является нулевым.
Я получаю желаемый результат, когда вызываю его в цикле foreach.Но я не могу заставить этот .net-хук захватить последнее имя папки.
Редактировать: И я понял, что пытаюсь изобрести колесо.Я должен был просто сделать «Select-Object Name» вместо «FullName».А потом использовал Trim, чтобы избавиться от любых персонажей, которые мне не нужны.
Но я все же хотел бы знать, как правильно использовать этот крючок .Net