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

Реализовать переход по папкам и выполнение в них команд

01.05.2022, 09:13. Показов 2207. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, решить такую задачу.

Я хотела сделать что-то наподобие команды cd в командной строке Windows. Т.е. через cd переходишь в какую-то папку и дальше уже выполняешь там команды.
Я приблизительно написала, как это может быть:

C#
1
2
3
4
5
6
7
8
9
case "CD Disk\\Folder1\\Folder2": //Disk\\Folder1\\Folder2 - путь, введённый пользователем (формат)
 
string path = //то, что написано в Disk\\Folder1\\Folder2
string [] papka = Directory.GetDirectories(path);
 
foreach (var str in papka)
Console.Write(papka);
 
break;
Но дело в том case выполняется, если задать какую-то конкретную строку или букву, а путь, который введёт пользователь, может быть разным: C:\papka1\papka2, C:\papka3\ и т.д. Я не знаю, как это в case прописать.

Дальше у меня идут команды (для примера команда создания файла NUL>):

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
case "NUL>":
 
Console.WriteLine();
Console.WriteLine();
 
Console.WriteLine("File name (numbers and English letters only): ");
string fname = Console.ReadLine();
 
FileInfo FileNew = new FileInfo(@"papka" + fname + ".txt");
FileNew.Create();
 
Console.WriteLine();
Console.WriteLine("A new file has been created. Its name: " + fname);
 
break;
Поскольку я выбрала папку через CD, то эта команда теперь должна выполняться по пути, на котором находится эта папка.

Как мне всё это реализовать? Не хочется убирать case, т.к. с ним удобно выполнять такие команды
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.05.2022, 09:13
Ответы с готовыми решениями:

Переход по папкам
<?php $a = $_SERVER."/papca/"; #$a=(isset($_GET))?$_GET:false; /* объявляем функцию */ function full_dir_all($a){ $dir...

Переход по папкам .
Подкиньте скрипт такой же как у апача !!! к примеру закидываем пустую папку на локалхост и в нее еще пустую то апач вывод что есть папка...

PsExec ввод параметров команд кириллицей (пути к файлам и папкам)
Решил научиться работать с PsExec. Подключиться получилось, все отлично, команды выполняются. Но при вводе русских имен папок и файлов, а...

5
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
01.05.2022, 10:10
Лучший ответ Сообщение было отмечено Скопа как решение

Решение

Скопа, у команды есть имя и параметры. Сделайте Split введенной команды и применяйте case для первого элемента.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string input  = "CD Disk\\Folder1\\Folder2";
string[] splitted = command.Split();
switch (splitted[0])
{
    case "CD":
        string path = splitted[1];
        string [] papka = Directory.GetDirectories(path);
 
        foreach (var str in papka)
            Console.Write(papka);
 
        break;
}
Если соберетесь повторить CMD с его перенаправлениями ввода/вывода, цепочками команд и т.д., то придется делать более сложный парсер.
1
2 / 2 / 0
Регистрация: 19.12.2020
Сообщений: 229
01.05.2022, 12:13  [ТС]
OwenGlendower, поняла! Только у меня ещё вопрос по поводу последующих команд:

C#
1
FileInfo FileNew = new FileInfo(@"papka" + fname + ".txt");
В этом случае вместо papka FileInfo будет создаваться при помощи path?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
01.05.2022, 15:18
Скопа, это вам решать. Можно сделать команду с параметром, можно без него и просить пользователя ввести значение. Или и то и другое одновременно. Есть параметр - используем его, нет - просим ввести.
0
2 / 2 / 0
Регистрация: 19.12.2020
Сообщений: 229
01.05.2022, 17:44  [ТС]
OwenGlendower, я думала сделать так, чтобы значение в CD потом использовалось для всех последующих команд, покуда пользователь не захочет снова поменять папку и уже в ней делать команду

C#
1
FileInfo FileNew = new FileInfo(@"papka" + fname + ".txt");
Ну т.е. как здесь.

Но он выдаёт мне такое сообщение, как на скриншоте. даже при попытке просто задать путь в CD
Миниатюры
Реализовать переход по папкам и выполнение в них команд  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
02.05.2022, 09:16
Лучший ответ Сообщение было отмечено Скопа как решение

Решение

Цитата Сообщение от Скопа Посмотреть сообщение
я думала сделать так, чтобы значение в CD потом использовалось для всех последующих команд
Введите переменную currentDir. В начале она может равна Environment.CurrentDirectory. При вызове CD перезаписывайте значение currentDir. Так где нужен текущий каталог используйте эту переменную. Или еще проще - меняйте значение Environment.CurrentDirectory и используйте его.

Цитата Сообщение от Скопа Посмотреть сообщение
Но он выдаёт мне такое сообщение,
Такое может произойти при преобразовании массива в строку. Т.к. у массивов не перегружен ToString(), то вызывается object.ToString() который возвращает полное имя типа. Если вам нужно вывести массив, то соберите его в строку самостоятельно.
C#
1
2
3
4
5
6
7
int[] array = {1,2,3};
// Неправильно
Console.WriteLine(array); // System.Int32[]
Console.WriteLine("Числа: " + array); // Числа: System.Int32[]
Console.WriteLine("Числа: {0}", array); // Числа: System.Int32[]
// Правильно
Console.WriteLine("Числа: " + string.Join(", ", array)); // Числа: 1, 2, 3
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.05.2022, 09:16
Помогаю со студенческими работами здесь

Переход по папкам в списке
Я делаю приложение для управления Яндекс.Диском со смартфона. Я вывожу список из файлов и папок в ListFragment и нужно, чтобы при нажатии...

переход по папкам (вверх)
Доброго времени суток. Пишу свой файл-менеджер. Не могу ни как придумать как можно при из папки где находишься, перейти вверх. Типа как...

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

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

Переход по папкам, в файловом менеджере, методом GET
Как сделать, что бы переход по папкам, был с помощью метода GET? Я никак понять не могу. <?php error_reporting(-1); ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru