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

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

05.06.2020, 08:25. Показов 3233. Ответов 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
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru