.NET Tip #2: Jak přistupovat k souborům přibalených v projektu?

Tomáš Jecha       1. 10. 2008       Offtopic, .NET Tips       6851 zobrazení

Často je vhodné přibalit potřebná data projektu přímo do exe souboru. Výhod to má několik, například nemusíme řešit distribuci většího počtu souborů, není potřeba kontrolovat, jestli ho uživatel nesmazal, jestli je k němu přístup atp.

Nejdříve soubor přidáme do projektu (na obrázku Napoveda.txt) a ve vlastnostech nastavíme Build Action na Embedded Resource.

image

V kódu pak můžeme k souboru přistoupim tímto příkazem:

Dim stream As System.IO.Stream
stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("MojeAplikace.Napoveda.txt")

Všimněte si, že se odkazuju na soubor pomocí jména složeného z jmenného prostoru + tečka + jméno souboru. Samotné jméno souboru nestačí!

Například text do konzole pak dostaneme ze streamu takto:

Module Module1

    Sub Main()
        Dim stream As System.IO.Stream
        stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("MojeAplikace.Napoveda.txt")

        Dim streamReader As New System.IO.StreamReader(stream)

        Dim text As String = streamReader.ReadToEnd()

        Console.Write(text)

        Console.ReadKey()

    End Sub

End Module

V ukázkové aplikaci pak dostaneme tento výsledek:

image

V konzoli je vypsaný text z přibaleného souboru

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Diskuse: .NET Tip #2: Jak přistupovat souborům přibaleným k projektu?

Je možné do takového filu také zapsat?

PetrS

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

Ne, na úpravy to není dělané - jedná se o statický zdroj. Asi bude možnost jak to udělat (i když značně složitá), ale nepouštěl bych se do ní. Už jenom proto, že je vložený přímo do exe souboru, který bude aktuálně spuštěný a není tedy možné jej upravit.

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