1

現在、コマンドラインからユーザー入力を取得しようとしていますOutputPath

 using (outfile = new StreamWriter(OutputPath))
 {
     outfile.Write(result);
 }

これは、指定されている場合は絶対パスに書き込むか、c:\windows\system32 の下にファイルを書き込みます

絶対パスにするか、現在のディレクトリに依存させるにはどうすればよいですか。コマンドラインから現在の作業ディレクトリを取得する方法はありますか、それを把握できるより良い API があります。

ありがとう

4

3 に答える 3

4

Path.IsPathRootedを使用して入力が絶対かどうかを判断し、Environment.CurrentDirectoryを使用して現在のディレクトリを取得します。この情報があれば、準備は万端です。

于 2012-08-09T21:50:24.983 に答える
2

Directory.GetCurrentDirectoryを使用して、の現在の作業ディレクトリを取得できますOS

于 2012-08-09T21:42:48.637 に答える
2

C# は、現在のディレクトリに基づく相対パスを使用する方法を知っています。

で作成されたファイルが表示されている場合はC:\Windows\System32、おそらくそれが現在の作業ディレクトリです。

ショートカットは、起動するプログラムの作業ディレクトリを設定できます。共通のファイルを開く/保存するダイアログも、現在の作業ディレクトリを混乱させます。

ショートカットを使用せずにアプリケーションを起動すると、親プロセスから現在のディレクトリが継承されます。 explorer.exe通常はC:\Windows\System32作業ディレクトリとしてあり、エクスプローラーでアイコンをダブルクリックして起動するアプリケーションではかなり一般的です。

于 2012-08-09T21:45:52.023 に答える