Cesta k souboru   zodpovězená otázka

VB.NET

Zdravím,

nemá prosím někdo zkušenost s tím, když chci aby se soubor uložil přímo do adresáře k EXE souboru spuštěného programu? Mám problém s cestou.

Soubor se mi ukládá na plochu což nechci.

K určení cesty používám tohle

System.IO.Path.GetFullPath(info.txt)

Dřív jsem používal (../info.txt) ale bojím se různých prostředí různých operačních systémů.

Koukal jsem na http://www.dotnetportal.cz/blogy/4/Tomas...

ale nějak jsem nepochopil odkud to začíná adresáře a podadresáře počítat jestli přímo od c:/ nebo od umístění EXE souboru.

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

1) Cesta ke složce aplikace je My.Application.Info.DirectoryPath.

2) Neukládejte do této složky žádné datové soubory, nemají tam co dělat a může docházet k bezpečnostním vyjímkám.

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

Děkuji za odpověď.

Ukládám jen informaci o spuštění aplikace z jiného počítače než dojde na daném počítači k její ukončení. Soubor obsahuje pouze jméno uživatele, který aplikaci spustil. Po ukončení běho aplikace soubor zmizí.

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

To je uplně jedno co soubor obsahuje, podstatné je, že se do něj zapisuje. Do Program Files nemají oprávnění pro zápis běžní uživatelé, takže UnauthorizedAccessException bude první co bude vidět až se to spustí u někoho, kdo není členem Administrators.

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

Máte pravdu. O tomhle problému vím. Proto je EXE soubor umístěn ve složce na síťovém disku.

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

Skvělé! Proto zase bude docházet k bezpečnostní vyjímce tentokrát z důvodu, že aplikace je spouštěna z nedůvěryhodného umístění (síťový disk), řešilo se zde milionkrát. Doporučoval bych vám tyhle bezpečnostní základy .NET aplikací nastudovat.

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

Zatím to žádnou chybu nehlásí, ale kouknu na to.

Děkuji za info.

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

K vyjímce by mělo dojít už při pokusu o spuštění aplikace ze síťového disku.

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

Koukal jsem se na Systémové informace - Programové prostředí - Hlášení o chybách systému Windows a nic tam nebylo. Lze zjistit zda-li dochází k vyjímce i když Windows nezobrazí chybové hlášení?

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

Vyjímky z .NET aplikací se do systémového protokolu ani nikam jinam automaticky nezapisují. Pokud dojde v aplikaci k vyjímce, která není ošetřená, zobrazí se systémový dialog nabízející pokračování nebo ukončení. Toto je navíc kritická bezpečnostní vyjímka, která ani nedovolí aplikaci spustit. Nechápu jak jste schopen něco psát, když nevíte ani takové základní věci.

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

Pane Linhart děkuji za odpověď, ale nejsem profesionální programátor. Jsem pouze začátečník, který programování má jen jako koníčka. Rád bych uměl programovat jako vy, ale toho asi nedosáhnu.

Přesto moc děkuji za pomoc.

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

Řešit ještě v dnešní době, to že by .NET assembly nešla spouštět ze síťového umístění je pěkná blbost.

Toto omezení již bylo dávno od FW 3.5 SP1 odstraněno viz. http://blogs.msdn.com/b/vancem/archive/2...

A ještě navíc to platilo pouze pro nepodepsané assembly (bez strong name).

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.
  • 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