Ich habe ein Befehlszeilenprogramm, das eine Konfigurationsdatei als Parameter akzeptiert, dh C: \ myprogram.exe -c C: \ configFiles \ MyConfigFile.txt . Ich möchte in der Lage sein, es so zu machen, dass ich den absoluten Pfad zur Konfigurationsdatei nicht eingeben muss, so kann ich statt des oben genannten einfach C: \ myprogram.exe -c MyConfigFile.txt
Ich bin nicht vertraut genug damit, wie C # mit Pfaden umgeht, um zu verstehen, ob und wie dies getan werden kann. Jede Einsicht ist willkommen.
Verwenden Sie Path.GetFullPath ()
Etwas wie:
%Vor%Das ist, wenn die Konfigurationsdatei im aktuellen Verzeichnis ist. Wenn sie in einem Standardordner gespeichert sind, können Sie Path.Combine ()
%Vor%Sie geben nur eine Zeichenfolge ein. Es liegt an dir, es in einem relativen Pfad zu handhaben.
Wenn Sie diesen Code verwenden, werden standardmäßig relative Pfade unterstützt.
FileInfo
versucht zuerst, den Pfad in Environment.CurrentDirectory
zu verwenden, wenn der angegebene Pfad nicht explizit ist.
Sie haben einige allgemeine Optionen:
Wie Sie es teilen, muss der Benutzer den Pfad zum Verzeichnis angeben, sei es in der Konfigurationsdatei, den relativen Pfad eingeben oder aus einer Liste von Dateien mit identischen Namen in verschiedenen Verzeichnissen auswählen.
ANALOGY: Du legst ein Lehrbuch irgendwo in einer Schule in ein Schließfach. Sie bitten Ihren Freund, das Buch von "einem Schließfach" zu bekommen, ohne zu erwähnen, welches Schließfach das ist. Du solltest erwarten, sehr lange zu warten und am Ende mit 50 ähnlichen Büchern zu enden. Oder geben Sie einen Hinweis auf den Flur, die Bank der Schließfächer und / oder Schließfachnummer, in der das Buch gespeichert werden kann. Die Unbestimmtheit Ihres Hinweises korreliert direkt mit der Reaktionszeit und dem Potential, mehrere Möglichkeiten zurückzugeben.
Ohne den relativen Pfad als Teil des Eingabearguments müsste Ihre Anwendung:
Nun, Standard-.NET-Klassen arbeiten mit relativen Pfaden auf die gleiche Weise wie mit absoluten, also könnten Sie sie ohne Probleme verwenden. Wenn C: root das Arbeitsverzeichnis Ihres Programms ist, können Sie c:\myprogram.exe -c configFiles\MyConfigFile.txt
verwenden und auf c:\configFiles\MyConfigFile.txt
zeigen.
Tags und Links .net c# programming-languages