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);
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
erstmal danke für die schnelle Antwort ... aba das Problem besteht weiterhin mit dem Pfad in der if Zeile
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
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.