2017-01-30 11 views
1

Ich möchte kleine Anwendungen erstellen, um meine Projekte zu verwalten, sollte so arbeiten, dass, nachdem Sie ein Element aus der Liste der Projekte auswählen dann ändert die Konsole das aktuelle Verzeichnis in das Projekt und beendet Programm verlassen Sie Konsole in corect dir, dann Sie kann zum Beispiel gegen Code oder http-Server laufen.Kann ich aktuelles Verzeichnis mit der C# Konsolen-App ändern?

I tryed
Environment.CurrentDirectory = direcory
Directory.SetCurrentDirectory(directory)
weder davon für mich gearbeitet:/

+5

Ich denke nicht, dass Sie das tun können, sobald die C# -App beendet wird, können Sie es nicht offen halten. Sie können eine Eingabeaufforderung von C# aus öffnen und einen Befehl zum Ändern des Verzeichnisses übergeben. http://stackoverflow.com/questions/1469764/run-command-prompt-commands –

+0

Ihre Konsole App und was auch immer-Sie-wollen-zu-laufen wird in Differenzprozesse ausgeführt werden, so wird unterschiedliche "aktuelle Verzeichnisse". Das eine wird das andere nicht beeinflussen. – series0ne

+0

Ein [Batch] (https://en.wikibooks.org/wiki/Windows_Batch_Scripting#CD) wäre besser geeignet, denke ich. – Fildor

Antwort

0

Ich denke, das den Trick tun sollten. Außerdem können Sie einen Befehl auf mich aus dem Code ausführen:

var startInfo = new ProcessStartInfo 
{ 
    WorkingDirectory = @"SomeDirectory", 
    FileName = "cmd.exe", 
    // Arguments = "start http-server" 
}; 
var process = new Process {StartInfo = startInfo}; 
process.Start(); 
+0

Ich kann Ihren Punkt sehen, aber es öffnet neue cmd, so ist es nicht das, was ich wollte:/ aber Stahl Thants: D –

0

Wenn ich Ihre Frage richtig verstanden hat, im Wesentlichen Sie ein C# Programm schreiben wollen, die eine ähnliche Funktion wie der CD-Befehl in der Eingabeaufforderung Umgebung führt.

Leider können Sie dies nicht aus dem C# -Programm heraus tun, da das Programm in seiner eigenen isolierten AppDomain gestartet wird, die (zusammen mit Ihrem neuen Arbeitsverzeichnis) nach Abschluss des Programms verworfen wird. Darüber hinaus können Sie die Erstellung der AppDomain durch den Startvorgang (die Eingabeaufforderung) nicht beeinflussen.

Verwandte Themen