2010-01-09 2 views
1

У меня есть программа, в которой я использую форму Windows, в этой форме я использую openFileDialog, где я открываю файл в каком-то каталоге. Затем я использую другую функцию StreamReader, и у меня есть второй файл в моем каталоге большой/отладки, который я хочу, чтобы streamReader открылся. Но по какой-то причине после того, как я открываю первый файл с openFileDialog, StreamReader ищет второй файл в этом каталоге, а не в bin/debug, как обычно.StreamReader ищет файл в неправильном каталоге в C#

Кто-нибудь знает, почему он это делает и как я могу его решить?

Спасибо заранее,

Грег

+0

Duplicate: http://stackoverflow.com/questions/930816/why-does-openfiledialog-change-my-working-directory –

ответ

1

OpenFileDialog имеет такое поведение; он изменяет текущий каталог для приложения. Чтобы этого не произошло, вы можете использовать свойство RestoreDirectoryOpenFileDialog.

+0

Большое спасибо, что сделал трюк! – 2010-01-09 14:33:19

1

При изменении каталога в диалоге открытия файла, это также приводит к рабочей директории вашего приложения, чтобы изменить. Поэтому, если вы пытаетесь использовать относительные пути, это будет выглядеть не в том месте.

Решение RestoreDirectory.

0

Если вы не указали полный путь к файлу, а только имя файла, это означает, что файл находится в текущем каталоге. Когда вы используете OpenFileDialog, он меняет текущий каталог.

Если вы хотите получить доступ к файлу где-либо независимо от того, для которого установлен текущий каталог, вы должны указать полный путь для него. Вы можете использовать Application.StartupPath, чтобы получить путь к папке, в которой находится ваша программа.

Смежные вопросы