Laden...

Process.Start - Datei konnte nicht gefunden werden

Erstellt von FlorianCsharp vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.010 Views
F
FlorianCsharp Themenstarter:in
2 Beiträge seit 2010
vor 14 Jahren
Process.Start - Datei konnte nicht gefunden werden

Also ich will mit meinem Programm, sämtliche Treiberprogramme starten. Jedoch funktioniert etwas mit dem Pfad nicht. Könnt ihr mir helfen?

using System;

namespace Treiberinstallation
{
	class Program
	{
		public static void Main(string[] args)
		{
		//Variablendefinition
		string abf = "Y";
		string pfa = "";
		
		//Programmstart
		pfa = Environment.CurrentDirectory;
		Console.WriteLine("Herzlich Willkommen bei der Treiberinstallation ihres Notebooks. \n");
		Console.WriteLine("{0}", pfa);
		
			// Intel Chipset
			Console.WriteLine(" Treiber 1 - Intel Chipset \n");
			Console.Write("  Wollen Sie den Treiber installieren? Y/N "); 
			abf = Console.ReadLine();
			if (abf == "Y") {System.Diagnostics.Process.Start("{0}\\drivers\\Intel Chipset.exe",pfa);};
		
		Console.ReadKey(true);
328 Beiträge seit 2006
vor 14 Jahren

Ich habe in Erinnerung das "Environment.CurrentDirectory" keine gute Wahl ist. Verwende lieber "AppDomain.CurrentDomain.BaseDirectory"

Lies dir am besten mal den Thread durch (auch den hinweis ganz unten!)
[FAQ] Pfad zur eigenen Anwendung (EXE) ermitteln

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck

F
FlorianCsharp Themenstarter:in
2 Beiträge seit 2010
vor 14 Jahren

erstmal danke für die schnelle Antwort ... aba das Problem besteht weiterhin mit dem Pfad in der if Zeile

328 Beiträge seit 2006
vor 14 Jahren

Also wenn der Pfad zur Datei sicher stimmt (am besten davor immer mit Files.Exist() prüfen) dann könnte es meiner Meinung nach nur noch am leerzeichen liegen 🤔. Probier mal die Datei umzubenennen in "Intel_Chipset.exe"

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck

V
78 Beiträge seit 2008
vor 14 Jahren

Das Problem ist vermutlich, dass du


Process.Start(string fileName, string arguments)

aufrufst. Das heist pfa wird als Startparameter übergeben und nicht für das {0} eingesetzt.

Das bedeutet du musst es in etwa so machen:


System.Diagnostics.Process.Start(pfa + "\\drivers\\Intel Chipset.exe");

EDIT:
Das \ ist sowieso nicht ganz geschickt, besser wäre das Path.DirectorySeparatorChar Feld zu benutzen. Und noch besser wäre es in Kombination mit der Path.Combine Methode.