ファイルの操作をしていると、現在のディレクトリの場所(カレントディレクトリ)を意識する場面があります。
シェル上であればカレントディレクトリをコマンドで確認することが出来ますが、ショートカットで実行するプログラムのカレントディレクトリはどこになるか確認してみたいと思います。
PowerShell.exeで確認
カレントディレクトリを取得するコードをショートカットで実行してみます。
ショートカットの内容
powershell.exe -NoExit -C "Get-Location"
結果
Path
----
C:\WINDOWS\System32\WindowsPowerShell\v1.0
powershell.exeがインストールされたディレクトリがカレントディレクトリになるようです。
次にショートカットのプロパティの作業フォルダーをh:\に変更してみる。
結果
Path
----
H:\
h:\に変更されたことが確認できました。ショートカットで実行したプログラムのカレントディレクトリは作業フォルダーで指定したディレクトリになるようです。
C#で作成した.exeファイルで確認
.exeファイルのショートカットでも確認してみます。
ソースコード
namespace CDir;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MessageBox.Show(System.IO.Directory.GetCurrentDirectory());
}
}
実行するとウィンドウが表示される前にメッセージボックスでカレントディレクトリが表示されます。
実行したところPowerShell.exeで実行した場合と同様に作業フォルダーで指定したディレクトリがカレントディレクトリになりました。
コメント