Soubor - nastavení jeho obecných vlastností   zodpovězená otázka

VB.NET, I/O operace

Dobrý den, omlouávm se tento možná triviální dotaz, ale nemohu to nikde nalézt.

Jedná se mi způsob jak přistupovat, při zápisu nebo čtení, k obecným vlastnostem souboru. Ty které jsou viditelné při označení souboru a použítí kontextového menu Vlastnosti.

Potřebuji nějak nastavit jednu hodnotu k souboru (textový popis) a protože vnitřní struktura binárního souboru je pevně dána a nemohu jí měnit, napadlo mě využít toto řešení.

Děkuji předem za pomoc

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

Běžné soubory mají kromě vlastních dat hlavičku, ve které jsou mj. údaje o souboru. Pokud je váš soubor natolik atypický, že tyto údaje nemá, pak je nemůžete číst :-)

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

Co myslíte těmi obecnými vlastnostmi? Název, velikost, umístění, datum vytvoření nebo změny a atributy? Nebo snad ty metadata která lze zadávat na kartě Souhrn ve vlastnostech souboru?

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

Ano, jde mi o tu druhou možnost (metadata která lze zadávat na kartě Souhrn ve vlastnostech souboru).

Nenapadá mě jiná varianta jak na to.

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

Tak to nijak jednoduše udělat nepůjde. Budete muset použít Windows API.

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

Pan Linhart má pravdu. Za prvé metadata jsou uloženy v NTFS Alternate Data Streams a neexistuje přímý přístup jak se dostat skrz .net k těmto informacím. Pomocí API cesta vede skrz:

IPropertyStorage

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

To je trochu nemilé, resp. komplikace navíc.

Každopádně děkuji, budu to muset nastudovat nebo nalézt jiné řešení.

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

VB.NET zná IPropertyStorage

Bez ohledu na způsob zápisu a čtení metadat z aplikace je třeba také uvažovat s tím, že data se nezkopírují na flash - mají převážně FAT32, nepřenesou se v zazipovaném souboru... nelze tedy tyto údaje brát jako "obecné vlastnosti"

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

Pokud myslíte MS.Internal.IO.Packaging.CompoundFile.IPropertyStorage tak to je nějaké rozhraní pro interní použití ve Frameworku, které nelze použít (je Friend v rámci assembly WindowsBase). Jiné takové rozhraní ve Frameworku není.

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