Laden...

dateipfad übergeben

Erstellt von vs_meier vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.076 Views
V
vs_meier Themenstarter:in
22 Beiträge seit 2007
vor 15 Jahren
dateipfad übergeben

Hallo Leute!

Ich möchte eine Datei mit meiner Anwendung starten, also mit einem Doppelklick.

So sieht der Code aus:


        [STAThread]
        public static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            if (args.Length > 0)
            {
                string arg1 = args[0];
                MessageBox.Show(arg1);
            }

            Application.Run(new WorkWriter());
        }

Bekomme aber von args nicht den kompletten Pfad, sondern nur ein Teil (C:\Dokumente).

Wie bekomme ich das hin, dass er mir den ganzen Pfad der Datei anzeigt?

mfg vs_meier

C
252 Beiträge seit 2007
vor 15 Jahren

Du musst den Parameter in "" setzen. Also "c:\dokumente und einstellungen..." Dann klappt das.

V
vs_meier Themenstarter:in
22 Beiträge seit 2007
vor 15 Jahren

Hi chavez!

Irgendwie verstehe ich dich nicht, wo soll ich den die "" einsetzen ?
Ich will doch das der Dateipfad an meiner Anwendung übergeben wird mit einem Doppelklick.

mfg vs_meier

C
252 Beiträge seit 2007
vor 15 Jahren

Ok. Das verstehe ich jetzt nicht. Aber du übergibst ja deinem programm ja schon den pfad. Dieser wird aber laut deinen Angaben beim Leerzeichen gesplittet. Um genau das zu verhindern musst du den Pfad in Anführungszeichen übergeben.
also anstatt
prog.exe c:/dokumente und einstellungen/all users/dokumente
machst du es so
prog.exe "c:/dokumente und einstellungen/all users/dokumente"
Somit enthält args[0] den kompletten pfad und nich nur c:/dokumente

V
vs_meier Themenstarter:in
22 Beiträge seit 2007
vor 15 Jahren

Habe es jetzt so gemacht, aber ist das gleiche Ergebniss.


        [STAThread]
        public static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            if (args.Length > 0)
            {
                MessageBox.Show("\"" + args[0] + "\"");
            }

            Application.Run(new WorkWriter());
        }

mfg vs_meier

C
252 Beiträge seit 2007
vor 15 Jahren

So ich hab dir mal ein kleines Testprog angehängt.
Du rufst es so auf:
ParamTest.exe "c:/dokumente und einstellungen/all users/dokumente"
wenn du es so aufrufst
ParamTest.exe c:/dokumente und einstellungen/all users/dokumente
dann zeigt er die nur c:/dokumente an

Ich hoffe du verstehst jetzt wie ich das meine.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo vs_meier,

die Anführungsstriche musst du - wie chavez gesagt hat - beim Aufruf setzen. Im Programm ist es zu spät.

herbivore

V
vs_meier Themenstarter:in
22 Beiträge seit 2007
vor 15 Jahren

Stimmt, stand da wohl ziemlich auf der Leitung.

Danke für die Hilfe.

mfg vs_meier