Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/75: Рейтинг темы: голосов - 75, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 13.03.2015
Сообщений: 88

Создание папки и проверка есть ли такая

12.06.2016, 10:45. Показов 14139. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вся суть идёт такая:
при нажатии Ф5 должно появиться окно с вводом названия папки, потом нажать ОК или интер и должна появиться папка по пути this._pathText.Text

C#
1
2
3
4
5
6
7
8
9
10
private void _treeView_KeyDown(object sender, KeyEventArgs e)
{
if (_treeView.Focused == true)
{
if (e.KeyValue == (char)Keys.F5)
{
/// тут должен быть код
}
}
}

как я понимаю это надо ввести название папки проверить или он уже есть по данному пути и если нет то создать.... я читал то что проверка осуществляется через Exists а создание через CreateDirectory вот только как это всё применить не знаю.... прошу у вас помощи
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2016, 10:45
Ответы с готовыми решениями:

Проверка, есть ли такая запись в базе данных
Здравствуйте. Помогите, пожалуйста. Это сайт отеля. Есть формы ввода фамилии, даты заезда, отъезда, номер, количество человек, статус...

Создание папки и проверка ее?
создаю папку, а как проверить что она создалась?? mkdir('/edit/upload'$num'',0755);

Циклическая проверка на существование папки и ее создание
Ситуация звучит таким образом: необходим скрипт который в определенной директории должен создавать папки. Первая созданная папка должна...

9
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.06.2016, 11:09
Проверку на наличие можно не проводить, достаточно просто вызвать Directory.Create — метод сам проверит наличие.

Цитата Сообщение от Raitek Посмотреть сообщение
// тут должен быть код
C#
1
Directory.Create(this._pathText.Text);
1
0 / 0 / 1
Регистрация: 13.03.2015
Сообщений: 88
12.06.2016, 11:13  [ТС]
а как всё организовать что я говорил это только 1 строка..
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
12.06.2016, 11:13
Raitek,
В файловых менеджерах традиционно создание папки - F7 (начиная с первых версий Norton Commander). Может не стоит ломать устои, нарушать традиции.
Код:
C#
1
2
3
4
if (!Directory.Exists(path))
{
    Directory.CreateDirectory(path);
}
0
0 / 0 / 1
Регистрация: 13.03.2015
Сообщений: 88
12.06.2016, 11:49  [ТС]
Даценд, можно и F7 сделать это не такая уж и проблемма. а как сделать чтоб окно появлялось с вводом имени папки?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.06.2016, 11:52
Цитата Сообщение от Даценд Посмотреть сообщение
C#
1
2
3
4
if (!Directory.Exists(path))
{
   Directory.CreateDirectory(path);
}
Directory.CreateDirectory:
Creates all directories and subdirectories in the specified path unless they already exist.
1
0 / 0 / 1
Регистрация: 13.03.2015
Сообщений: 88
12.06.2016, 12:10  [ТС]
kolorotur, сделал так но ничего не происходит.....
setFilesToListFromDir(this._pathText.Tex t); --- эта строка обновляет список папок...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 private void _treeView_KeyDown(object sender, KeyEventArgs e)
        {
            if (_treeView.Focused == true)
            {
                if (e.KeyValue == (char)Keys.F7)
                {
                    if (!Directory.Exists(this._pathText.Text))
                    {
                        Directory.CreateDirectory(this._pathText.Text);
                        setFilesToListFromDir(this._pathText.Text);
                    }
                }
            }
        }
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.06.2016, 12:15
Цитата Сообщение от Raitek Посмотреть сообщение
ничего не происходит
А что должно происходить?
У вас производится проверка: если папка не существует, то создать ее и вызвать метод.
Если существует, то ничего не делать.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
12.06.2016, 12:18
kolorotur,
Спасибо, забыл об этом.

Цитата Сообщение от Raitek Посмотреть сообщение
как сделать чтоб окно появлялось с вводом имени папки?
Вызывайте вот этот метод, передавая в него путь, по которому должна создаваться папка:
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
public void CreateDir(string selectedPath)
{
    Form foldrNameForm = new Form();
    foldrNameForm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
    foldrNameForm.Size = new System.Drawing.Size(300, 130);
    foldrNameForm.Text = "Создание папки";
    Label lbl = new Label();
    lbl.AutoSize = true;
    lbl.Text = "Введите имя папки:";
    foldrNameForm.Controls.Add(lbl);
    lbl.Location = new Point(10, 10);
    TextBox tbFolderName = new TextBox();
    tbFolderName.Size = new System.Drawing.Size(260, 20);
    foldrNameForm.Controls.Add(tbFolderName);
    tbFolderName.Location = new Point(10, 30);
    Button btnOK = new Button();
    btnOK.Text = "OK";
    btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
    foldrNameForm.Controls.Add(btnOK);
    btnOK.Location = new Point(10, 60);
    Button btnCans = new Button();
    btnCans.Text = "Отмена";
    btnCans.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    foldrNameForm.Controls.Add(btnCans);
    btnCans.Location = new Point(195, 60);
    if (foldrNameForm.ShowDialog() == DialogResult.OK)
    {
        if (!string.IsNullOrWhiteSpace(tbFolderName.Text))
            Directory.CreateDirectory(Path.Combine(selectedPath, tbFolderName.Text));
    }
}
Если вызвать так:
C#
1
CreateDir(@"d:\qwerty");
то папка будет создана в папке d:\qwerty.

Ну или можно форму создать в конструкторе, а не динамически.
0
0 / 0 / 1
Регистрация: 13.03.2015
Сообщений: 88
12.06.2016, 13:45  [ТС]
Даценд, спасибо очень помогло. а как можно сделать обновление списка папок за нового. а то она добавляется как положено но пока программа не пере запуститься папку которую создал не видно в списке....

Добавлено через 42 минуты
Даценд, ладно с обновлением чуть позже сам разберусь как нибудь... а как сделать удаление папки. папки выводятся в _treeView. я понимаю что надо смотреть какой элемент в фокусе и его удалять.
вот так я делал для файла
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (e.KeyValue == (char)Keys.Delete)
                {
                    string message = "Вы действительно хотите удалить?";
                    string caption = "Удаление файла";
                    ListView.SelectedListViewItemCollection ic1 = listView1.SelectedItems;
                    ListViewItem li1 = ic1[0];
                    string type1 = li1.SubItems[2].Text;
                    MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                    DialogResult result1;
                    result1 = MessageBox.Show(message, caption, buttons);
                    if (result1 == System.Windows.Forms.DialogResult.Yes)
                    {
 
                        ListViewItem item1 = listView1.SelectedItems[0];
                        string delete1 = this.textBox1.Text + "" + item1.Text + "." + type1;
                        label3.Text = delete1;
                        File.Delete(delete1);
                        goPath1(textBox1.Text, true);
                        /////
 
                    }
                }
а для папки как учитывая что он в treeView
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2016, 13:45
Помогаю со студенческими работами здесь

Создание новой папки и проверка имеющейся
Всем привет! Вопрос 1: Как исправить макрос, чтобы он проверял на наличие уже существующей папки с такимже именем и если она уже есть...

Циклическая проверка на существование папки и ее создание
Ситуация звучит таким образом: необходима небольшая программа которая в определенной директории должна создавать папки. Первая созданная...

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

Работа со строками. Дано слово. Удалить из него букву О, если такая есть. Удалить из него последнюю букву Л, если такая есть
Привет! Нужна помощь по задачке по паскалю. Пожалуйста помогите! Задание: Дано слово. Удалить из него букву О, если такая есть....

Определить, есть ли такая фирма, у которой все 5 лет наблюдался рост производства и, если есть, то каков её номер
Имеется таблица с данными об объёме производства 10 фирм за 5 лет. Определить, есть ли такая фирма, у которой все 5 лет наблюдался рост...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru