StreamReader ищет файл в неправильном каталоге в C # - PullRequest
1 голос
/ 09 января 2010

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

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

Заранее спасибо,

Грег

Ответы [ 3 ]

1 голос
/ 09 января 2010

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

1 голос
/ 09 января 2010

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

Решение - RestoreDirectory .

0 голосов
/ 09 января 2010

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

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

...