Elérési utak ([system.io.path])

Van egy nagyon hasznos .NET típus, a [system.io.path] , ami az elérési utakkal kapcsolatban nyújt hasznos metódusokat. Az egyik ilyen a kiterjesztések módosítása a ChangeExtension metódussal:

PS C:\> [System.IO.Path]::ChangeExtension("C:\PSKönyv\szöveg.txt","xtx")

C:\PSKönyv\szöveg.xtx

PS C:\> [System.IO.Path]::ChangeExtension("C:\PSKönyv\NincsKiterjesztés","txt")

C:\PSKönyv\NincsKiterjesztés.txt

Látható, hogy akár meglevő kiterjesztést le lehet cserélni, akár kiterjesztés nélküli fájlnak lehet kiterjesztést adni.

A GetTempPath metódus annyival jobb, mint a $env:temp, hogy nem konvertálja az elérési utat rövid nevekből álló elérési úttá:

PS C:\> [System.IO.Path]::GetTempPath()

C:\Users\SoosTibor\AppData\Local\Temp\

PS C:\> $env:TEMP

C:\Users\SOOSTI~1\AppData\Local\Temp

Ez ott lehet hasznos, ha egy külső programnak akarjuk átadni az ideiglenes fájlok tárolására szolgáló mappa elérési útját, mert tapasztalatom szerint nem minden program szereti a hullám (~) karaktert.

A GetInvalidFileNameChars metódus segítségével készíthetünk olyan kifejezést, ami kicseréli a fájlnevekben nem érvényes karaktereket az aláhúzás karakterre:

PS C:\> $pattern = "[" + [regex]::Escape(-join [system.io.path]::GetInvalidFile

NameChars()) + "]"

PS C:\> 'nem" \érvényes* fájl?.név' -replace $pattern, "_"

nem_ _érvényes_ fájl_.név

A többi metódus bele van integrálva a Path főnévvel rendelkező cmdletekbe, így azokra nincs akkora szükségünk. A GetTempFileName metódust pedig már láttuk a 2.6.12 Ideiglenes fájlok létrehozása fejezetben.



Word To HTML Converter