Jméno souboru bez cesty   zodpovězená otázka

VB.NET

Dobrý večer, přes hodinu hledám a nic pořádného jsem nenalezl.

Jak je možné získat pouze jméno souboru , nebo je opravdu nutné rosekat celou cestu ? viz.:

jmenoSouboru = OpenFileDialog1.FileName

a extrahovat to pomocí návodu na adrese:

http://forum.builder.cz/read.php?19,135262,135315#msg-135315

Předem děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to takhle:

Dim Cesta As String = "C:/Documents And Settings/User/Plocha/FileXYZ.bin"
Dim Jmeno As String = Cesta.Substring(Cesta.LastIndexOf("/")+1)

snad v tom nejsou chyby, píšu to z hlavy

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Doporučil bych Vám podívat se na metody jmenného prostoru System.IO.Path, možná by se Vám z nich něco hodilo.

Jenom výběrem:

Dim cesta As String = "c:\abc\def\soubor.aaa"

'vrací adresář programu:
' >c:\abc\def<
MsgBox(IO.Path.GetDirectoryName(cesta))

' vrací název souboru
' >soubor.aaa<
MsgBox(IO.Path.GetFileName(cesta))

' vrací příponu souboru
' >.aaa<
MsgBox(IO.Path.GetExtension(cesta))

' vrací název souboru bez přípony
' >soubor<
MsgBox(IO.Path.GetFileNameWithoutExtension(cesta))

A těch možností je tam daleko více, koukněte na ně přes Object Browser.

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

Ano, přesně tak. Odřezávání jména pomocí nalezení posledního zpětného lomítka je dobrý nápad, ale lepší je využít vestavěné funkce z namespace IO.Path. .NET framework totiž povoluje i cesty, kde nejsou zpětná lomítka, ale lomítka normální (kdyby to někdy nedejbože běhalo na linuxu), kde by tento postup selhal. Vestavěné funkce s tím počítají.

Nedá mi to a ještě zmíním funkci IO.Path.Combine, které předáte dvě části cesty a ona je spojí a případně mezi ně doplní lomítko. Pokud tedy máte soubor soubor.jpg ve složce C:\temp a potřebujete získat kompletní cestu, použijte IO.Path.Combine. Pokud to sloučíte ručně, musíte zkontrolovat, aby cesta končila lomítkem a případně ho přidat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky moc všem, je to to, co jsem potřeboval, říkal jsem si, že něco snad musí být, ale nebyl jsem schopen to najít.

PS: nemám nikde žádnou volbu: dotaz zodpovězen, kde bych to měl označit?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud jste v diskuznim vlaknu, ktere jste zalozil, tak by melo byt pod fotkou zelene tlacitko "Odpovídá na otázku". Stejne jako je na screenshotu:

http://vbnet.cz/Custom/answers.png

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

Díky.

Tak to bude asi problém, já to zelené tlačítko vůbec nevidím a to ani v IE 6 ani v FF2 a to dokonce ani ve zdrojových kódech. Přitom přihlášen jsem.

Mám ale takový pocit, že mi blbne profil, protože se do něj nemohu dostat. Možná zkusím přeregistrovat a uvidím.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Na tu chybu s profilem se podívám.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • 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