С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47

Сохранение объекта в файл через OpenFileDialog

16.10.2013, 15:53. Показов 3729. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, почему происходит ошибка при сохранении объекта?

Код:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
private void button1_Click_3(object sender, EventArgs e)
        {
            Stream myStream = null;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
 
            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        using (myStream)
                        {
 
                            // Insert code to read the stream here.
                            Person[] mas = new Person[8];
                            mas[0] = new Working("Nikita", 1319, 32131);
                            mas[1] = new Working("Sergey", 40321, 3213);
                            mas[2] = new Engineer("Anton", 20321, 12232);
                            mas[3] = new Administrator("Igor", 13212, 2431);
                            mas[4] = new Administrator("Alexander", 32143, 43321);
                            mas[5] = new Working("Petr", 31432, 4433);
                            mas[6] = new Engineer("Azat", 213432, 343442);
                            mas[7] = new Engineer("Aynur", 43432, 34425);
 
                            //Заполнение коллекции полиморфными объектами, добавлением в конец
                            LinkedList<Person> list = new LinkedList<Person>();
                            foreach (Person i in mas) list.AddLast(i);
 
                            /*
                            //Печать коллекции
                            Console.WriteLine("PRINT COLLECTION:");
                            foreach (Person i in list) i.show();
                            */
 
                            //Сериализация 
                            FileStream f = new FileStream(openFileDialog1.FileName, FileMode.Create);
                            BinaryFormatter b = new BinaryFormatter();
                            b.Serialize(f, list);
                            f.Close();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }
        }


Ошибка:



Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2013, 15:53
Ответы с готовыми решениями:

Распарсить файл, выбранный через OpenFileDialog
В задании мы сохраняем данные в файл из listBox1 и listBox2. Необходимо, чтобы при открытии этого файла данные так же отображались в...

Открыть файл через компонент OpenFileDialog
Нужно переделать код. Чтоб имя файла не вводить вручную, а нужно было выбрать через диалоговое окно компонента OpenFileDialog. Спасибо!...

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

4
154 / 153 / 29
Регистрация: 21.05.2010
Сообщений: 338
16.10.2013, 16:03
bestpalyer1, ибо этот файл скорее всего открыт. Закройте приложение, использующее его.
1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
16.10.2013, 20:23  [ТС]
Цитата Сообщение от Smems Посмотреть сообщение
bestpalyer1, ибо этот файл скорее всего открыт. Закройте приложение, использующее его.
В этом-то и загвоздка! Ни какими сторонними приложениями файл не используется.

Добавлено через 30 минут
Когда пишешь конкретное имя файла, то все хорошо работает:
C#
1
FileStream f = new FileStream("file.txt", FileMode.Create);
но когда:
C#
1
FileStream f = new FileStream(openFileDialog1.FileName, FileMode.Create);
то ошибка о том, что файл используется другим процессом, но при таком использовании смысл использовать диалоги отпадает, а мне необходимо с диалогами.

Есть же те у кого есть "экспириенс" в данной области, в чем ошибка?
1
154 / 153 / 29
Регистрация: 21.05.2010
Сообщений: 338
17.10.2013, 11:26
bestpalyer1, выложите проект, чтобы разобраться.
1
61 / 61 / 14
Регистрация: 06.10.2013
Сообщений: 133
17.10.2013, 11:57
C#
1
2
3
4
5
6
7
8
      OpenFileDialog fileopen = new OpenFileDialog() { Filter = "TXT|*.txt" };
      if (fileopen.ShowDialog() == DialogResult.OK && !String.IsNullOrEmpty(fileopen.FileName))
      {
        FileStream stream = new FileStream(fileopen.FileName, FileMode.Create);
        byte[] value = new UTF8Encoding(true).GetBytes("класс");
        stream.Write(value, 0, value.Length);
        stream.Close();
      }
Попробуйте такой метод.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2013, 11:57
Помогаю со студенческими работами здесь

Заполнить DataGridView массивом из файла. Файл открывать через OpenFileDialog
Добрый вечер! Очень нужна помощь! Надо заполнить DataGridView массивом из файла. Файл открывать через OpenFileDialog. Как это можно...

При попытке открыть DBF файл через OpenFileDialog вылетает ошибка
при попытке открыть DBF файл через OpenFileDialog вылетает ошибка private void открытьToolStripMenuItem_Click(object sender, EventArgs...

Сохранение графического объекта в файл
Здравствуйте! Меня интересует, можно ли с помощью программного кода сохранить графический объект (System.Drawing) в графический файл,...

Сохранение и чтение объекта класса в файл/из файла
Добрый день! Столкнулся с проблемой сохранения объекта класса в файл, и последующего его чтения. Задача такая: имеем vector base, в...

Сохранение рваного массива в файл и его загрузка в программу через файл
Не работает как надо. Что нужно исправить? private void btnLoadRaggedArray_Click(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru