Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
.NET 2.x

Записать в файл путь к выбранного файлу

07.05.2011, 10:50. Показов 2419. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
C#
1
2
3
4
5
6
7
8
9
 textBox2.Text = "";
              if (openFileDialog2.ShowDialog() == DialogResult.OK)
            {
                textBox2.Text = openFileDialog2.FileName;
                
                StreamWriter tw = new StreamWriter("db4.txt");
                tw.Write(textBox2.Text);
                
            }
Задача: необходимо записать в файл путь к выбранного файлу. Причем записываемый файл должен находиться в папке с ехе файлом программы, причем не задавая путь, где находится программа.
Код выше создаёт файл в папке где находится выбираемый файл.
Как "объяснить" c#, чтобы он создавал файл в директории с программой.
Пробовал
C#
1
openFileDialog2.Dispose();
Не помогло.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2011, 10:50
Ответы с готовыми решениями:

Файл: Получить полный путь к файлу и записать этот путь в отдельную переменную.
Доброго времени суток.Столкнулся с проблемой в ходе выполнения задачи. Мне нужно получить полный путь к файлу и записать этот путь в...

В файле найти строки длиной 3 символа, записать их в новый файл (путь к файлу вводить вручную)
Я пока сделала запись из исходного файла в память(но мне кажется,что есть ошибки,не могли бы вы проверить пожалуйста,а то у самой пока...

Разбить путь к файлу на части - путь, файл и расширение
Как разбить путь к файлу на части - путь, файл и расширение? Например: c:\kuku\part1\name.txt $path=c:\kuku\part1\ $name=name ...

7
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
07.05.2011, 11:05
C#
1
    Application.StartupPath; //путь к папке с программой
Добавлено через 1 минуту
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
Причем записываемый файл должен находиться в папке с ехе файлом программы
В Windows Vista и Windows 7 нужны повышенные привилегии, чтобы писать в папку с программой в случае, если программа установлена да системный каталог (где винда стоит) в папку ProgramFiles. Другими словами туда лучше не сохранять файлы.
1
 Аватар для Kayak
10 / 10 / 1
Регистрация: 02.04.2011
Сообщений: 95
07.05.2011, 11:08
C#
1
2
3
            openFileDialog2.ShowDialog();
            StreamWriter tw = new StreamWriter(Application.StartupPath);
            tw.Write(openFileDialog2.FileName);
tw.Close(); когда понадобится не забудь.
Пиши яснее , дольше вникал в суть задания чем писал
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
07.05.2011, 11:13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public partial class Form2 : Form
    {
        const String DataBaseFileName = "db4.txt";
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            String file = Path.Combine(Application.StartupPath, DataBaseFileName);
            StreamWriter sw = File.CreateText(file);
            sw.Write("Путь, который нужно сохранить");
            sw.Close();
            sw.Dispose();
        }
    }
А лучше так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public partial class Form2 : Form
    {
        const String DataBaseFileName = "db4.txt";
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            String file = Path.Combine(Application.StartupPath, DataBaseFileName);
            using (StreamWriter sw = File.CreateText(file))
            {
                sw.Write("Путь, который нужно сохранить");
            }
        }
    }
0
 Аватар для Kayak
10 / 10 / 1
Регистрация: 02.04.2011
Сообщений: 95
07.05.2011, 11:22
в обоих вариантах файл будет в папке до той где программа и название выйдет предыдущая папка+db4.txt(слеш забыл)
C#
1
2
3
            openFileDialog2.ShowDialog();
            StreamWriter tw = new StreamWriter(Application.StartupPath+"\db4.txt");
            tw.Write(openFileDialog2.FileName);
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
07.05.2011, 11:25
Цитата Сообщение от Casper-SC Посмотреть сообщение
File.CreateText(file)
Помоему можно просто напсать имя файла ("db4.txt") вместо file. C# Всеровно сохраняет файл в папке с программой.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
07.05.2011, 11:27
Так можно добавить путь в файл:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    public partial class Form2 : Form
    {
        const String DataBaseFileName = "db4.txt";
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            String file = Path.Combine(Application.StartupPath, DataBaseFileName); //Полный путь к файлу "базы данных"
            String dataBaseText = null;
            using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                using (StreamReader sr = new StreamReader(fs))
                {
                    dataBaseText = sr.ReadToEnd();
                    using (StreamWriter sw = new StreamWriter(fs))
                    {
                        sw.WriteLine(dataBaseText);
                        sw.WriteLine("Путь который нужно сохранить");
                    }
                }
            }
        }
    }
Вообще лучше данные программы сохранять сюда:
C#
1
String file = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Имя твоей программы", DataBaseFileName); //Полный путь к файлу "базы данных"
Цитата Сообщение от sk007 Посмотреть сообщение
Помоему можно просто напсать имя файла ("db4.txt") вместо file. C# Всеровно сохраняет файл в папке с программой.
Если не ошибаюсь файл сохранится в текущий рабочий каталог. В некоторых ситуациях он отличается от папки с программой. Короче в любом случае лучше явно указать путь, чем надеяться непонятно на что.
1
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
07.05.2011, 11:41
Цитата Сообщение от Casper-SC Посмотреть сообщение
Если не ошибаюсь файл сохранится в текущий рабочий каталог. В некоторых ситуациях он отличается от папки с программой. Короче в любом случае лучше явно указать путь, чем надеяться непонятно на что.
Ладно следующий раз так и сделаем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2011, 11:41
Помогаю со студенческими работами здесь

Записать путь к файлу в БД
Здравствуйте,делаю небольшую CRM для полиграфии, есть input type=file , он записывает в бд только название файла. Мне необходимо записать в...

Как записать путь к файлу в таблицу?
запрос такой INSERT INTO `product`(`image`) VALUES (`/home/***/***violetfox.ru/docs/data/products/4127.jpg`) ошибка #1054 -...

Получить путь к файлу и записать в TextBox
Помогите.Хочу сделать функцию которая будет открывать файл через button и будет показываться путь к файлу в textbox.Как сделать?Объясните...

Записать в Textbox путь к файлу, выбранному в OpenFileDialog
Что нужно прописать в кнопке,чтобы через нее указать путь в textbox?К примеру есть textbox_path и button_path. Я жму на button_path и...

Записать имя и путь к файлу в базу данных mysql
как сделать чтобы при выводе файла записывалось бы имя файла и путь файла в базу данных mysql ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru