Directory.GetCurrentDirectory() – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Directory.GetCurrentDirectory() – .NET – Fórum – Programujte.comDirectory.GetCurrentDirectory() – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
zonda0
Stálý člen
21. 11. 2008   #1
-
0
-

Mám taký problém z prýkazom :
GetCurrentDirectory();
zrobil som toto :

       

private void button1_Click(object sender, EventArgs e)
{
string Cesta = Directory.GetCurrentDirectory();
MessageBox.Show("Tvoja cesta " + Cesta);
}

Ide to normálne , ale problém je v tom že ja chem aby mi ukázalo celý súbor a nie iba adresár ??
Ale nie pomocou :
Application.ExecutablePath();
Lebo tento príkaz síce nájde kde sa ten súbor nachádza ale nájde iba programový súbor!
A ja chem ukážem na príklade
Príklad:
Otvoríš si poznamkový blok tam niečo napíšeš a uložíš to : subor.srs
A teraz ten : subro.srs nastavyš aby sa ti otvoril v tvojom programe .
A ked otvoríš ten subor.srs tak ti otvorí tvoj program a ten program napíše kde sa ten subor.srs nachádza !
No a to nieviem ???
lebo príkaz : Directory.GetCurrentDirectory(); ti nájde iba adresár a ja checm aby našiel celú cestu !!

Nahlásit jako SPAM
IP: 91.127.85.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
Reklama
Reklama
mnn
~ Anonymní uživatel
118 příspěvků
21. 11. 2008   #2
-
0
-

ked pouzijes asociaciu typu suborov vo Windows, tak sa program v podstate spusta s parametrom daneho suboru:
mojaaplikacia.exe "C:\Cesta k suboru\subro.srs"



static void Main(string[] args)
{
// args[0] == @"C:\Cesta k suboru\subro.srs"
}

Nahlásit jako SPAM
IP: 78.98.157.–
zonda0
Stálý člen
21. 11. 2008   #3
-
0
-

ale ja chcem zitiť tú cetu ?? lebo tá cesta môže byť hociaká .
Lebo ti uložíš svoj subor hocikde na disk . A dáš mu názov hociaký ale isté je iba že bude mať koncovku .stt :)
Ja som prišiel iba na to ako zisiť kde je ale iba po adresár:
string Cesta = Directory.GetCurrentDirectory();
Lebo ak otvoríš subor.stt tak windous ti otvorý tvoju aplicaciu (napr.: aplication.exe) a v nej napýše cestu kde je ten súbor.stt
No a ja som sa dostal iba po adresár kde končí!! A chcem vedieť či niekto neviete ako by som zistil že ako sa volá ten súbro.stt .
Skúšal som pomocou path.GetFileName ale to my napíše iba názov toho programu (čiže aplication.exe) a ja chcem vedieť
ako sa volá ten súbor.stt

Za radu veľmi ĎAKUJEM

P.S Zaoberám sa tím už týždeň a nenašiel som nikde ako by sa to dalo urobiť !!

Nahlásit jako SPAM
IP: 84.47.86.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
mnn
~ Anonymní uživatel
118 příspěvků
22. 11. 2008   #4
-
0
-

stale nechapes?

FileInfo a = new FileInfo(args[0]);

a.Name // nazov suboru
a.Directory // DirectoryInfo
a.DirectoryName // plna cesta k suboru


Co je nepochopitelne na tom, ze staci prehladat MSDN? boze...

Nahlásit jako SPAM
IP: 78.98.157.–
zonda0
Stálý člen
22. 11. 2008   #5
-
0
-

Nejde to .Napíše chybu : args[0] does not exist in the current context
A mám to tak zložené :



private void button1_Click(object sender, EventArgs e)
{
FileInfo fileInfo = new FileInfo(args[0]);
MessageBox.Show("Directory: " + fileInfo.Directory);
MessageBox.Show("DirectoryName: "+ fileInfo.DirectoryName);
MessageBox.Show("Name: " + fileInfo.Name);
}

Nahlásit jako SPAM
IP: 84.47.86.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
rudolf_franek0
Stálý člen
22. 11. 2008   #6
-
0
-

FileInfo a = new FileInfo(args[0]);

misto args[0] si dosad promenou typu string, ktera v sobe ma jmeno souboru:

string fileName = "subor.srs";
FileInfo a = new FileInfo(fileName);

Pozadovane informace ale stejne dostanes pouze pokud se subor.srs bude nachazet v 'CurrentDirectory'.
Jinak budes stejne muset napred ten soubor najit.

Nahlásit jako SPAM
IP: 90.178.66.–
Pebble0
Návštěvník
22. 11. 2008   #7
-
0
-

dá se to udělat i takhle :
string[] soubory=Directory.GetFiles(Directory.GetCurrentDirectory);
pak máš pole souborů, se kterými můžeš pracovat, např. zjistit, jestli tam soubor je, zjistit příponu apod.

Nahlásit jako SPAM
IP: 83.208.77.–
zonda0
Stálý člen
22. 11. 2008   #8
-
0
-

Vy ma nechápete :(
Ukážem príklad :
Máš program Visual Studio . V ňom si vytvoríš neaký program . Uložíš ho pod názvom napr.: aplicion . On ti dá príponu .sln.
Takže subor ktorý si uložil sa volá aplician.sln . Teraz zatvoríš Visual Studio a otvoríš si TotalComander V ňom si nájdeš to čo si si uložil (aplicion.sln) A dvakrát na to stlačíš .A otvorí sa ti Visual Studio ktoré následne otvorilo tvoj súbor aplicatio.sln .A zobrazi ti ho .
A toto chcem vedieť že ako sa to dá zisiť tá adresa súboru ktorý spustil ten Visual Studio .
Preto ja nemôžem zadať neakú penvú adresu a ani žiaden názov súboru lebo ja neviem ako sa ten súbor volá a ani kde je
to chcem zistiť ??

Potrebujem niečo takéto tu Directory.GetCurrentDirectory ale toto zistí iba v ako adresáte sa to nachádza .A mne treba vedieť aj
meno toho súboru .

Nahlásit jako SPAM
IP: 84.47.86.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
22. 11. 2008   #9
-
0
-

To zonda : To máš pravdu, nepochopil jsem tě. Ty totiž neumíš napsat, co vlastně chceš - napíšeš hromadu věcí a teď abych si vybral, s čím máš problém. Z tvé poslední odpovědi dokonce vyplývá, že vlastně sám nevíš, co chceš a to je pak problém.

Soubor *.sln má (nemá, ale to je teď jedno) jako výchozí aplikaci nastavené Visual Studio (devenv.exe), které se po kliknutí na *.sln spustí s určitým argumentem, v tomto případě (devenv.exe c:/cesta/nazev.sln). Jak se k takovému údaji dostat už bylo popsáno výše.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
zonda0
Stálý člen
22. 11. 2008   #10
-
0
-

Už som to pochopil zistil som kde bola chyba :) .
Napísal som to takto :



static void Main(string[] args)
{
FileInfo a = new FileInfo(args[0]);
string cesta = a.Name;
string cesta3 = a.DirectoryName;
Console.WriteLine("Cesta " + cesta3 + cesta);
Console.ReadLine();
}

A šlape to :)
Ale taký malí dotaz : Neviete ako sa to dá preniesť args[0] do WindousAplicacií ??
Lebo vytvorím si neakú windousaplicaciu a do nej vložím ten static void Main... .A teraz neviem
Ako by som ju donútil program aby static void Main... spustil ??

Nahlásit jako SPAM
IP: 91.127.219.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
mnn
~ Anonymní uživatel
118 příspěvků
22. 11. 2008   #11
-
0
-

zonda: tak ako pise djanosik. Uloz si v Main obsah args[0] (samozrejme musi byt v parametroch Main) niekam bokom (do stringu, co bude pristupny aj vo formulari, najjednoduchsie statickou premennou) a potom pouzijes ten kod co som ti napisal.

Nahlásit jako SPAM
IP: 78.98.157.–
mnn
~ Anonymní uživatel
118 příspěvků
22. 11. 2008   #12
-
0
-



public static string parameter = string.Empty

static void Main(string[] args)
{
if (args.Length > 0)
parameter = args[0];
// veci ako Application.Run(....)....
}




private void button1_Click(object sender, EventArgs e)

{

FileInfo fileInfo = new FileInfo(Program.parameter); // ak trieda kde mas Main sa vola Program

MessageBox.Show("Directory: " + fileInfo.Directory);

MessageBox.Show("DirectoryName: "+ fileInfo.DirectoryName);

MessageBox.Show("Name: " + fileInfo.Name);

}

Nahlásit jako SPAM
IP: 78.98.157.–
zonda0
Stálý člen
22. 11. 2008   #13
-
0
-

Díík moc

Nahlásit jako SPAM
IP: 91.127.219.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
22. 11. 2008   #14
-
0
-

Další možností je vytvořit u hlavního formuláře (a případně u dalších) přetíženej konstruktor a argument/y mu předat.

Application.Run(new Form1(args[0]));


Případně ještě elegantněji s pomocí.

string arg = Environment.GetCommandLineArgs()[0];

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
mnn
~ Anonymní uživatel
118 příspěvků
23. 11. 2008   #15
-
0
-

djanosik: Zdalo sa mi to zlozitejsie ako moj navrh, tak som to radsej nechal tak. Ale ako teraz na to pozeram tak ta druha moznost je ovela lepsia a jednoduchsia. Dokonca som nej ani nevedel. Diki za info!

Nahlásit jako SPAM
IP: 78.98.157.–
zonda0
Stálý člen
23. 11. 2008   #16
-
0
-

to je celkom o dosť ľahšie dík :)
Ďakujem za pomoc všetkým :)

Nahlásit jako SPAM
IP: 91.127.219.–
Všetko by malo byt urobene tak jednoducho ako je možne ale nie jednoducho :) .Albert Einstein [br] ----------------------------------------- [br] Ak nájdete chyby v text tak sorri :P.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 57 hostů

Podobná vlákna

Directory list — založil double

Copy to output directory — založil Hanesis

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý