1

Windowsフォームを使用しているプログラムがあります。そのフォームでは、openFileDialogを使用して、あるディレクトリでファイルを開きます。次に、別の関数で StreamReader を使用し、streamReader で開きたい 2 番目のファイルを big/debug ディレクトリに持っています。しかし、何らかの理由で openFileDialog で最初のファイルを開いた後、StreamReader は通常どおり bin/debug ではなく、そのディレクトリ内の 2 番目のファイルを探します。

なぜ彼がそれをするのか、どうすれば解決できるのか誰か知っていますか?

前もって感謝します、

グレッグ

4

3 に答える 3

1

ファイルを開くダイアログでディレクトリを変更すると、アプリケーションの作業ディレクトリも変更されます。したがって、相対パスを使用しようとすると、間違った場所に表示されます。

解決策はRestoreDirectoryです。

于 2010-01-09T14:28:13.603 に答える
1

OpenFileDialogはその動作があります。アプリケーションの現在のディレクトリを変更します。これを防ぐには、 のRestoreDirectoryプロパティを使用できますOpenFileDialog

于 2010-01-09T14:28:36.783 に答える
0

完全なファイル パスを指定せずにファイル名のみを指定した場合、そのファイルは現在のディレクトリにあることを意味します。OpenFileDialog を使用すると、現在のディレクトリが変更されます。

現在のディレクトリの設定に関係なく、どこかのファイルにアクセスしたい場合は、そのファイルの完全なパスを指定する必要があります。Application.StartupPathプログラムがあるフォルダーへのパスを取得するために使用できます。

于 2010-01-09T14:30:59.350 に答える