.NET Tip #3: Práce se jmény souborů, složek a cest (1/2)

Tomáš Jecha, MVP, MCSD       02.10.2008       C#, VB.NET, .NET Tips       14740 zobrazení

Druhý díl naleznete zde.

.NET Framework nám nabízí řadu užitečných tříd, které nám mohou značně usnadnit práci a zbavit nás případných chyb. Určitě stojí za zmínku funkce pro práci s textovou reprezntací jmen souborů a jejich umístění v souborovém systému. Slouží pro to třída System.IO.Path. Jejich 15 funkcí rozdělím na 2 příspěvky.

1/15 - System.IO.Path.Combine(cesta1 as String, cesta2 as String) as String - Spojení dvou cest

Tato funkce spojuje dvě cesty, popřípadě cestu a jméno souboru do jedné. Super je, že nemusíme řešit, zda cesta končí zpětným lomítkem nebo ne. Příklad:

' Výsledek: c:\adresar\podadresar\jmenosouboru.txt
System.IO.Path.Combine("c:\adresar\podadresar\", "jmenoSouboru.txt") 

' Výsledek: c:\adresar\podadresar\jmenosouboru.txt
System.IO.Path.Combine("c:\adresar\podadresar", "jmenoSouboru.txt")

' Výsledek: c:\adresar\podadresar\dalsipodadresar\jmenosouboru.txt
System.IO.Path.Combine("c:\adresar\podadresar", "dalsipodadresar\jmenoSouboru.txt")

2/15 - System.IO.Path.GetDirectoryName(cesta as String) as String - Jméno složky

Slouží pro zjištění cesty, kde se soubor nachází. Příklad:

' Výsledek: c:\adresar\podadresar\
System.IO.Path.GetDirectoryName("c:\adresar\podadresar\soubor.txt")

' Výsledek: c:\
System.IO.Path.GetDirectoryName("c:\soubor.txt")

3/15 - System.IO.Path.GetExtension(cesta as String) as String - Zjištění přípony

Zjišťuje příponu souboru z celé cesty nebo jen jména souboru. Pokud přípona není, vrací prázdný řetězec. Příklad:

' Výsledek: .txt
System.IO.Path.GetExtension("c:\soubor.txt")

' Výsledek: .doc
System.IO.Path.GetExtension("c:\slozka.neco\soubor.doc")

' Výsledek: (prázdný)
System.IO.Path.GetExtension("c:\slozka\souborBezPripony")

4/15 - System.IO.Path.GetFileName(cesta as String) as String - Zjištění jména souboru

Zjišťuje jméno souboru i s jeho příponou z celé cesty nebo jen jména souboru. Pokud se jedná o jméno adresáře, vrací prázdný řetězec. Příklad:

' Výsledek: soubor.txt
System.IO.Path.GetFileName("c:\slozka\soubor.txt")
    
' Výsledek: (prázdný)
System.IO.Path.GetFileName("c:\slozka\")

5/15 - System.IO.Path.GetFileNameWithoutExtension(cesta as String) as String - Zjištění jména souboru bez přípony

Zjišťuje jméno souboru bez jeho přípony z celé cesty nebo jen jména souboru. Pokud se jedná o jméno adresáře, vrací prázdný řetězec. Příklad:

' Výsledek: soubor
System.IO.Path.GetFileNameWithoutExtension("c:\slozka\soubor.txt")

6/15 - System.IO.Path.GetFullPath(cesta as String) as String - Zjištění plné cesty z relativní

Vrací jméno souboru v jeho plném formátu i s cestou. Pokud uvedete relativní cestu, bere se ve vztahu k aktuálnímu adresáři (defaultně ten, ze kterého se spustil exe soubor). Příklad:

' Výsledek: c:\temp\Console3\bin\Debug\ahoj.txt
System.IO.Path.GetFullPath("ahoj.txt");

' Výsledek: c:\temp\Console3\ahoj.txt (relativní cesta o 2 adresáře nahoru)
System.IO.Path.GetFullPath("..\..\ahoj.txt");

' Výsledek: c:\ahoj.txt (znak "\" na začátku znamená kořenový adresář)
System.IO.Path.GetFullPath("\ahoj.txt");

' Výsledek: c:\slozka\ahoj.txt
System.IO.Path.GetFullPath("c:\slozka\ahoj.txt")

' Výsledek: f:\plnaCesta\ahoj.txt
System.IO.Path.GetFullPath("f:\plnaCesta\ahoj.txt")

7/15 - System.IO.Path.GetInvalidFileNameChars() as Char() - Neplatné znaky jména souboru

Vrací statické pole znaků, které se nesmí vyskytovat ve jménu souboru. Vhodné pokud chceme kontrolovat validní jména souborů. Namátkou to jsou: *, ?, \, >, " atp.

8/15 - System.IO.Path.GetInvalidPathChars() as Char() - Neplatné znaky cesty

Vrací statické pole znaků, které se nesmí vyskytovat v cestě k souboru. Prakticky identicté jako GetInvalidFileNameChars, jen s tím rozdílem, že pole neobsahuje znaky, které slouží pro zapsání cesty (zpětné lomítko atp.).

Druhý díl naleznete zde.

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Diskuse: .NET Tip #3: Práce se jmény souborů, složek a cest (1/2)

Zdravím,

pěkný návod, ale mi nepomohl...

Potřebuji zjistit fyzickou cestu k souboru o kterém nevím kde je. Respektive vím, že je kde je uložen vůči aplikaci která ho volá. Potřebuji tedy zjistit adresář odkud je spuštěna alikace.

Je to pro autorun (jednoduchá obrazovak a odkazem na další soubory (exe, pdf, Powerpoint...)

pro spuštění apliakce používám

Process.Start("cesta/k/soboru.pdf")

jelikož půjede o CD, tak nemám zaručené, že mechanika bude vždy D:/

máte někdo nápad jak toto řešit?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Diskuse: .NET Tip #3: Práce se jmény souborů, složek a cest (1/2)

Jako vždy jsem tu našel přesně to co potřebuji.

Díííky!

PetrS

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback