С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750

Массив имён подкаталогов

05.06.2020, 08:25. Показов 3212. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Имеется имя(путь) каталога Path.
Нужно создать строковый массив названий(имён) подкаталогов без указания полного пути.
Если с указанием полного пути, то можно так:
C++
1
array<String^>^ Name = Directory::GetDirectories(Path);

По логике, без указания пути должно быть так:
C++
1
array<String^>^ Name = DirectoryInfo::Name(Path);
или так:
C++
1
array<DirectoryInfo^>^ Name = DirectoryInfo::Name(Path);
Но, не работает.... Почему?


(Visual Studio 2017 - Windows Forms C++)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2020, 08:25
Ответы с готовыми решениями:

Определение наличия подкаталогов в каталоге и вывод их имен.
определить или есть в каталоге c:Temp подкаталоги. если нашлись, то вывести на экран названия и даты создания этих

Копирование файлов с определённым расширением из всех подкаталогов и запись их имён в текстовый файл
Доброго времени суток. Задача немного похожа на описанную в этой теме. Нужен bat, который: все файлы с расширением .xml в...

Переместить все файлы из всех подкаталогов в текущий каталог и удалить подкаталоги, если у них нет своих подкаталогов
Переместить все файлы из всех подкаталогов в текущий каталог и удалить подкаталоги, если у них нет своих подкаталогов

4
2 / 1 / 1
Регистрация: 27.09.2017
Сообщений: 45
05.06.2020, 14:08
Лучший ответ Сообщение было отмечено LVV как решение

Решение

Ну, во-первых это может не работать потому что это C#, а не C++. Во-вторых, если верить MicrosftDocs: https://docs.microsoft.com/ru-... mework-4.8
,то name получает имя данного каталога DirectoryInfo и, к тому же, вызывается не так, как у вас, а вот так:
C#
1
2
3
DirectoryInfo dir = new DirectoryInfo(".");
        String dirName=dir.Name;
        Console.WriteLine("DirectoryInfo name is {0}.", dirName);
В вашем случае проще всего будет воспользоваться
Цитата Сообщение от LVV Посмотреть сообщение
array<String^>^ Name = Directory::GetDirectories(Path);
(не уверен что оно работает именно так, но если работает - значит хорошо. А потом - просто циклом пройтись по всему массиву и вырезать нужное вам имя файла из каждого его элемента.
Например, подобными функциями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//C:\FolderName\File.ext => File
CString GetFileTitle_(CString strFilePathName)
{
  if (strFilePathName.IsEmpty())
  {
    _ASSERTE(!_T("GetFileTitle_"));
    return _T("");
  }
  int nIdx = strFilePathName.ReverseFind(_T('\\'));
  if (nIdx == -1)
    return strFilePathName;
  strFilePathName = strFilePathName.Mid(nIdx + 1, strFilePathName.GetLength() - nIdx);
  nIdx = strFilePathName.ReverseFind(_T('.'));
  if (nIdx == -1)
    return strFilePathName;
  return strFilePathName.Mid(0, nIdx);
}
Не говорю, что конкретно этой, но чем-то подобным, в зависимости от того, что вам нужно
1
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
07.06.2020, 04:55  [ТС]
Цитата Сообщение от D-V-A Посмотреть сообщение
в зависимости от того, что вам нужно
Спасибо, D-V-A, мне нужно было создать строковый массив названий(имён) подкаталогов без указания полного пути (для записи названий в текстовый файл).

Не уверен, что всё грамотно сделал, но работает в Visual Studio 2017 - Windows Forms C++.
(может кому пригодится)
C++
1
2
3
4
5
6
7
8
array<String^>^ NameDir = Directory::GetDirectories(Path);//имёна поддиректорий с указанием полного пути
DirectoryInfo^ NameSubdir;
        for (int i = 0; i < NameDir->Length; i++)
        {
            NameSubdir = gcnew DirectoryInfo(NameDir[i]);
//поэлементно переписываем в строковом массиве имена поддиректорий без указания пути 
            NameDir[i] = NameSubdir->Name;
        }
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
07.06.2020, 12:10
Цитата Сообщение от D-V-A Посмотреть сообщение
потому что это C#, а не C++
Это C++/CLI, а не C#.

LVV, этот раздел для C++. Для .Net языков, в т.ч. для C++/CLI, который к C++ отношения не имеет, имеется отдельный раздел.
1
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
07.06.2020, 15:38  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
этот раздел для C++. Для .Net языков, в т.ч. для C++/CLI, который к C++ отношения не имеет, имеется отдельный раздел
Спасибо.
Раздел вроде назывался Visual С++ (пока тему не перенесли сюда).
А разве Visual C++ не включает в себя C++/CLI?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2020, 15:38
Помогаю со студенческими работами здесь

Получить массив подкаталогов папки
КАк получить список подкатологов в котологе и занести его в массив?

Как получить массив подкаталогов?
вот таким образом можно получить набор файлегов директории: Dim s As String s = Dir(&quot;c: emp*.*&quot;) i = 1 ...

Поместить в массив список файлов и подкаталогов в заданном каталоге Linux
Всем доброго времени суток. Прошу помощи в следующем вопросе. Пишу программу, которая должна сканировать содержимое /usr/include и...

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

Создать массив имен
Всем добрый день.:) Подскажите пожалуйста, я создала массив $name =array ('Саня', 'Алексей','Вася', 'Витя', 'Вася', 'Иван', 'Вася',...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
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 считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru