2つのファイルがあります。1つは現在実行中のアプリケーション(file1.exe)で、もう1つは任意のタイプの別のファイル(file2。*)です。
2番目のファイルが最初のファイルが実行されたのと同じディレクトリにあるかどうかをfile1.exeのソースコードで確認するにはどうすればよいですか?
私はFile.Exists(path)に精通しているので、これは、最初のファイルが実行されたディレクトリを返すメソッドを見つけることに要約されると思います。
2つのファイルがあります。1つは現在実行中のアプリケーション(file1.exe)で、もう1つは任意のタイプの別のファイル(file2。*)です。
2番目のファイルが最初のファイルが実行されたのと同じディレクトリにあるかどうかをfile1.exeのソースコードで確認するにはどうすればよいですか?
私はFile.Exists(path)に精通しているので、これは、最初のファイルが実行されたディレクトリを返すメソッドを見つけることに要約されると思います。
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
それはそれをする必要があります
これを試して:
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Assembly.GetExecutingAssembly()のMSDNドキュメントへのリンクは次のとおりです。
using System.IO;
using System.Windows.Forms;
Path.GetDirectoryName(Application.ExecutablePath);
または
using System.IO;
using System.Reflection;
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
これらの方法の最初のものは、より効率的である可能性があります。しかし、このような気になる仕事のために!:]
これがお役に立てば幸いです。
File.Exists("file2.whatever");
Exists
相対パスも受け入れるように、デフォルトで機能するはずです。
これが不正確であることがわかったのは、アプリを起動した場所とは異なる作業ディレクトリを設定したときだけです。
GetEntryAssembly()を使用することをお勧めします:
System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetEntryAssembly().Location);
これにより、別のアセンブリから呼び出された場合でも*.exeが返されます