ファイルを変換するプログラムを作成したいと考えています。ユーザーが実行可能ファイルを任意のディレクトリに配置できるようにし、そのプログラムを実行するとき (.exe をダブルクリック)、exe ファイルが存在する現在のフォルダ内のすべてのファイルをプログラムが処理するようにしたいと思います。プログラムは現在実行中のパスをどのように判断できるのでしょうか。
試してみましたSystem.Windows.Forms.Application.StartupPath
が、どうやらそれは間違った方法のようです。
何か案は?
ベストアンサー1
特にショートカットからプログラムを実行する場合は、現在のディレクトリが実行フォルダと異なる可能性があるため、この場合は使用しないでください。Directory.GetCurrentDirectory()
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
目的に応じて使用することをお勧めします。これは、現在実行中のアセンブリが存在するパス名を返します。
私が提案したアプローチでは、実行アセンブリ、エントリアセンブリ、またはその他のロードされたアセンブリを区別することができますが、Soner Gönülが回答で述べたように、
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
も十分かもしれません。これは、
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);