2017-01-30 2 views
1

私はプロジェクトを管理するための小さなアプリケーションを作成したいので、プロジェクトのリストから項目を選択すると、コンソールは現在のディレクトリをプロジェクトに変更し、プログラムを終了してcorectディレクトリにコンソールを残してたとえば、vs codeまたはhttp-serverを実行できます。c#console appを使用してcurentディレクトリを変更することはできますか?

私はそれのいずれもが私のために働いた
Environment.CurrentDirectory = direcory
Directory.SetCurrentDirectory(directory)
をしようと試み:/

+5

私はあなたがそれを行うことができるとは思わない、一度C#アプリが終了すると、それを開いたままにすることはできません。 C#からコマンドプロンプトを開き、ディレクトリ変更コマンドを渡すことができます。 http://stackoverflow.com/questions/1469764/run-command-prompt-commands –

+0

コンソールアプリケーションとwhat-else-you-run-to-runは異なるプロセスで実行されるため、異なる「現在のディレクトリ」を持ちます。一方は他方には影響しません。 – series0ne

+0

[バッチ](https://en.wikibooks.org/wiki/Windows_Batch_Scripting#CD)が適しています。 – Fildor

答えて

0

を私は、これはトリックを行うべきだと思います。また、あなたはコードから、その上にいくつかのコマンドを実行することができます。

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

私はあなたのポイントを見ることができますが、それは私が望んでいないので、それは新しいcmdを開きます:/ しかし、鋼thants:D –

0

を私が正しくあなたの質問を理解していれば、基本的にあなたがコマンドプロンプトの環境でCDコマンドに類似した機能を実行C#のプログラムを書きたいです。

残念ながら、C#プログラムでは、プログラムが完了したときに(新しい作業ディレクトリとともに)捨てられた独立したAppDomainでプログラムが起動されるため、この処理を行うことはできません。さらに、起動プロセス(コマンドプロンプト)によってAppDomainの作成に影響を与えることはできません。

関連する問題