Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107

Сохранение файлов в папки

18.10.2016, 18:32. Показов 8160. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток)
Помогите пожалуйста. Как мне реализовать функцию, которая будет проверять существование папки в текущем каталоге и если данная папка отсутствует, то создать ее и записать нужные файлы в нее. Конкретно функцию записи файлов я реализовал, а как создать папку с определенным названием при её отсутствии и указать что бы туда записывались файлы, не могу разобраться) помогите пожалуйста)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2016, 18:32
Ответы с готовыми решениями:

В определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов
В общем Моя задача, в определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов. Вот код: namespace...

250 файлов *.pdf перенести с папки на диске в папки SharePoint
Всех приветствую! Уважаемые форумчане, нужна консультация в плане разработки для обычного пользователя настольного приложения для...

Создание папки по значению в ячейке и сохранение в эту папку файлов
Доброго вечера! Прошу помощи с доработкой кода VBA по разделению таблицы Excel на отдельные файлы и сохранение полученных файлов в формате...

14
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
18.10.2016, 18:41
Лучший ответ Сообщение было отмечено Kanelynch как решение

Решение

C#
1
2
3
4
 if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path)
            }
2
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
18.10.2016, 20:42  [ТС]
Спасибо большое так, папку получилось создать, а как указать что бы файл сохранялся в неё?
0
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
18.10.2016, 20:47
У вас в path путь до этой папки указан
1
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
18.10.2016, 21:58  [ТС]
Вот как у меня реализована функция, что то не пойму как ее подправить что бы туда записывалось
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
        private void button2_Click(object sender, EventArgs e)
        {
            int Selcet = comboBox1.SelectedIndex;
            if (LastSelectCombobox != Selcet)
            {
                i = 1;
            }
            LastSelectCombobox = Selcet;
            string Text = textBox1.Text;
            if(Selcet < 0)
            {
                MessageBox.Show("Выберите тему!");
            }
            else
            {
                string directoriya = Directory.GetCurrentDirectory();
                if(!Directory.Exists("T" + Selcet.ToString()))
                {
                    Directory.CreateDirectory("T" + Selcet.ToString());
                }
                System.IO.StreamWriter File = new System.IO.StreamWriter("Test_" + Selcet.ToString() + "_" + i + ".dat");
                File.WriteLine(Text);
                File.Close();
                i++;
                textBox1.Text = "";
                if (System.IO.File.Exists("Test_" + Selcet.ToString() + "_" + i + ".dat"))
                {
                    textBox1.Lines = System.IO.File.ReadAllLines("Test_" + Selcet.ToString() + "_" + i + ".dat");
                }
                else
                {
                    textBox1.Text = "";
                }
            }
        }
Добавлено через 1 час 5 минут
я создаю папку с определенным именем, далее генерирую имя будущего файла и как мне указать что бы данный файл записался в эту папку?
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
        private void button2_Click(object sender, EventArgs e)                              // След вопр
        {
            int SelectComboBox = comboBox1.SelectedIndex;                                   // Узнаем индекс выбранного элемента в комбобокс
            if (LastSelectCombobox != SelectComboBox)                                       // сравниваем текущий индекс с прошлым выбраным
            {
                i = 1;                                                                      // если индексы не равны - счетчик сбрасываем на единицу
            }
            LastSelectCombobox = SelectComboBox;                                            // последний выбранный индекс = текущему выбранному
            string Text = textBox1.Text;                                                    // получаем текст из текстбокс
            if(SelectComboBox < 0)                                                          // проверяем выбрана ли тема в комбобокс
            {
                MessageBox.Show("Выберите тему!");
            }
            else                                                                            // есл выбрана то
            {
                string directoriya = Directory.GetCurrentDirectory();                       // получаем текущую директорию (ненужная хрень)
                string path = Path.Combine("T" + SelectComboBox.ToString());                // генерируем название папки
                if (!Directory.Exists(path))                                                // если папкки нету
                {
                    Directory.CreateDirectory(path);                                        // то создаем ее
                }
                string FileName = "Test_" + SelectComboBox.ToString() + "_" + i + ".dat";   // генерируем название файла
                StreamWriter File = new StreamWriter(FileName, true);                       
                File.WriteLine(Text);                                                       // записываем в файл
                File.Close();                                                               // закрываем
                i++;                                                                        // увеличиваем счетчик
                textBox1.Text = "";                                                         // обнуляем текстбокс
                if (System.IO.File.Exists("Test_" + SelectComboBox.ToString() + "_" + i + ".dat"))                          // если существует файл с указанным названием
                {
                    textBox1.Lines = System.IO.File.ReadAllLines("Test_" + SelectComboBox.ToString() + "_" + i + ".dat");   // выводим содержимое в комбобокс
                }
                else
                {
                    textBox1.Text = "";                                                                                     // либо очищаем комбобокс
                }
            }
        }
1
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
18.10.2016, 22:07
C#
1
2
3
4
5
6
int Selcet;
private void button2_Click(object sender, EventArgs e)
        {
            Selcet = comboBox1.SelectedIndex;
            ...
        }
Добавлено через 8 минут
у вас получается что под каждый индекс вы создаете свою папку и в нее пишете файл. Создайте одну папку, а в нее уже пишите файлы с уник. именами
1
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
18.10.2016, 22:14  [ТС]
в том то и дело что мне под разные файлы нужны разные папки) вот только что все таки смог реализовать следующим образом)

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
        private void button2_Click(object sender, EventArgs e)                              // След вопр
        {
            int SelectComboBox = comboBox1.SelectedIndex;                                   // Узнаем индекс выбранного элемента в комбобокс
            if (LastSelectCombobox != SelectComboBox)                                       // сравниваем текущий индекс с прошлым выбраным
            {
                i = 1;                                                                      // если индексы не равны - счетчик сбрасываем на единицу
            }
            LastSelectCombobox = SelectComboBox;                                            // последний выбранный индекс = текущему выбранному
            string Text = textBox1.Text;                                                    // получаем текст из текстбокс
            if(SelectComboBox < 0)                                                          // проверяем выбрана ли тема в комбобокс
            {
                MessageBox.Show("Выберите тему!");
            }
            else                                                                            // есл выбрана то
            {
                string directoriya = Directory.GetCurrentDirectory();                       // получаем текущую директорию (ненужная хрень)
                string path = Path.Combine("T" + SelectComboBox.ToString());                // генерируем название папки
                if (!Directory.Exists(path))                                                // если папкки нету
                {
                    Directory.CreateDirectory(path);                                        // то создаем ее
                }
                string FileName = "Test_" + SelectComboBox.ToString() + "_" + i + ".dat";   // генерируем название файла
                string mesto = directoriya + "\" + path + "\" + FileName;
                MessageBox.Show(mesto);
                StreamWriter File = new StreamWriter(mesto, true);                       
                File.WriteLine(Text);                                                       // записываем в файл
                File.Close();                                                               // закрываем
                i++;                                                                        // увеличиваем счетчик
                textBox1.Text = "";                                                         // обнуляем текстбокс
                if (System.IO.File.Exists("Test_" + SelectComboBox.ToString() + "_" + i + ".dat"))                          // если существует файл с указанным названием
                {
                    textBox1.Lines = System.IO.File.ReadAllLines("Test_" + SelectComboBox.ToString() + "_" + i + ".dat");   // выводим содержимое в комбобокс
                }
                else
                {
                    textBox1.Text = "";                                                                                     // либо очищаем комбобокс
                }
            }
        }
0
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
18.10.2016, 22:24
C#
1
2
3
4
5
6
7
8
9
string path = @"D:\test";
        private void button1_Click(object sender, EventArgs e)
        {
            if (!Directory.Exists(path + comboBox1.SelectedIndex))
            {
                Directory.CreateDirectory(path + comboBox1.SelectedIndex);
            }
            else MessageBox.Show("Папка уже есть");
        }
Добавлено через 2 минуты
что то в тегах C# не весь код показывает.
надо так
string path = @"D:\test$";
вместо $ тоже обратный слеш
1
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
18.10.2016, 22:28  [ТС]
в принципе так и сделал, только не хардом прописав, а в текущую директорию программы)
C#
1
2
3
4
5
6
7
8
9
10
11
12
string directoriya = Directory.GetCurrentDirectory();                       // получаем текущую директорию (ненужная хрень)
string path = Path.Combine("T" + SelectComboBox.ToString());                // генерируем название папки
if (!Directory.Exists(path))                                                // если папкки нету
{
    Directory.CreateDirectory(path);                                        // то создаем ее
}
string FileName = "Test_" + SelectComboBox.ToString() + "_" + i + ".dat";   // генерируем название файла
string mesto = directoriya + "\ " + path + "\ " + FileName;                 // создаем нужный путь (текущая дерриктория + название папки + название файла)
MessageBox.Show(mesto);                                                     // просто проверяем все ли правильно
StreamWriter File = new StreamWriter(mesto, true);                          // указываем запись по нужному нам пути
File.WriteLine(Text);                                                       // записываем в файл
File.Close();                                                               // закрываем
0
215 / 211 / 146
Регистрация: 20.11.2014
Сообщений: 1,184
18.10.2016, 22:36
А что не работает то?
0
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
18.10.2016, 22:45  [ТС]
изначально не мог записать файл в нужную директорию, но уже смог записать) теперь все работает) спасибо ^_^
0
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
18.10.2016, 23:07  [ТС]
Блин, записать то получилось, а при считывании теперь почему то все дублируется, не могу понять почему
Может кто помочь? Проект прикрепил. Суть в чем:
Вводишь в текстбокс текст, нажимаешь "Следующий вопрос", программа сохраняет текст в файл. Потвторяем данную процедуру пару раз.
Нажимаем на кнопку "Предыдущий вопрос" и нам показывает вопрос, который мы вводили предыдущем. Побегам кнопками по вопросам "туда и обратно" текст начинает дублироваться.
Не могу понять в чем проблема Гляньте пожалуйста
Вложения
Тип файла: zip Ekzam.zip (54.3 Кб, 7 просмотров)
0
 Аватар для Hermein
99 / 43 / 16
Регистрация: 25.10.2011
Сообщений: 246
19.10.2016, 00:19
Лучший ответ Сообщение было отмечено Kanelynch как решение

Решение

Kanelynch, вместо
C#
1
2
3
StreamWriter File = new StreamWriter(mesto, true);                          // указываем запись по нужному нам пути
File.WriteLine(Text);                                                       // записываем в файл
File.Close();
используйте:
C#
1
File.WriteAllText(mesto, Text);
1
.NET senior
 Аватар для bax_tang
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
19.10.2016, 01:03
Kanelynch, потому что при нажатии на кнопку Следующий вопрос у Вас текущий вопрос сохраняется в файле с тем же именем, с которым в том же методе читается, через StreamWriter. А StreamWriter, насколько я помню, по умолчанию делает append (присоединяет) данные к файлу, если он уже существует. Вот Вам и ответ.
1
3 / 3 / 3
Регистрация: 16.11.2015
Сообщений: 107
19.10.2016, 07:10  [ТС]
Hermein, bax_tang, спасибо большое ^_^
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2016, 07:10
Помогаю со студенческими работами здесь

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот это) - Копирование всех файлов с...

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот это) - Копирование всех файлов с...

Копирование нескольких файлов из локальной папки в две сетевые папки с последующим удалением исходных файлов
Есть практическая задача: нужно накидать батник, который будет в определённое время брать из одной локальной папки несколько файлов и...

При удалении файлов из папки скрипт меняет дату изменения папки
Друзья, добрый день! Прошу помочь в решении моей проблемы: PowerShell удаляет файлы старше 10 дней. Обрабатывается примерно 200 папок,...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru