Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > StreamWriter директория для записи |
Автор: IGV 25.9.2010, 16:40 | ||||
Столкнулся с неожиданной и совершенно непонятной для меня проблемой. Приведу пример кода и дам комментарии. Создаем консольное приложение:
Файл test_console0.txt - был создан в той же директории, где лежит exe'шник. Файл test_console1.txt - был создан в директории "C:\temp\". Файл test_console2.txt - был создан в той же директории, где лежит exe'шник. Файл test_console3.txt (файл, указанный с помощью SaveFileDialog) - был создан в выбранной в SaveFileDialog директории. (в тестовом примере - "Рабочий стол"). Файл test_console4.txt - был создан в выбранной в SaveFileDialog директории. (в тестовом примере "Рабочий стол"). А теперь вопрос: Почему файл test_console4.txt был создан не в директории, где лежит exe'шник? |
Автор: CYBERDREAM 25.9.2010, 16:56 |
Если хочешь навярняка сохранять рядом с ехе, то используй Application.StartupPath или что то вроде того, если консоль, то System.Reflection.Assembly.GetExecutingAssembly().Location По идее у тебя Environment.CurrentDirectory сбивается после вызова SaveFileDialog. Хотя у меня данны код сохранил консоль4 рядом с ехе |
Автор: IGV 25.9.2010, 17:03 | ||||||||
При создании объекта StreamWriter, если в конструктор передается, только имя файла (fileName), то StreamWriter определяет полный путь до файла так:
SaveFileDialog изменяет значение
на то, которое использовалось при сохранении. Чтобы изменения не происходило необходимо "выставить" свойство
По умолчанию
|