1

2つのファイルがあります。1つは現在実行中のアプリケーション(file1.exe)で、もう1つは任意のタイプの別のファイル(file2。*)です。

2番目のファイルが最初のファイルが実行されたのと同じディレクトリにあるかどうかをfile1.exeのソースコードで確認するにはどうすればよいですか?

私はFile.Exists(path)に精通しているので、これは、最初のファイルが実行されたディレクトリを返すメソッドを見つけることに要約されると思います。

4

5 に答える 5

6
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

それはそれをする必要があります

于 2012-12-04T15:52:00.663 に答える
1

これを試して:

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

Assembly.GetExecutingAssembly()のMSDNドキュメントへのリンクは次のとおりです。

于 2012-12-04T15:49:44.080 に答える
1
using System.IO;
using System.Windows.Forms;
Path.GetDirectoryName(Application.ExecutablePath);

または

using System.IO;
using System.Reflection;
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

これらの方法の最初のものは、より効率的である可能性があります。しかし、このような気になる仕事のために!:]

これがお役に立てば幸いです。

于 2012-12-04T15:59:51.503 に答える
0

File.Exists("file2.whatever");Exists相対パスも受け入れるように、デフォルトで機能するはずです。

これが不正確であることがわかったのは、アプリを起動した場所とは異なる作業ディレクトリを設定したときだけです。

于 2012-12-04T15:54:37.417 に答える
0

GetEntryAssembly()を使用することをお勧めします:

System.IO.Path.GetDirectoryName(
                System.Reflection.Assembly.GetEntryAssembly().Location);

これにより、別のアセンブリから呼び出された場合でも*.exeが返されます

于 2012-12-04T15:58:45.030 に答える