Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программа на WF C++ miniexplorer / 8 сообщений из 8, страница 1 из 1
23.12.2012, 17:15
    #38089740
tur91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
Вот простая программа на vb6
Мне нужно написать нечто подобное на С++ 2010

Подскажите пожалуйста как подключить к пустому проекту WF DirListBox

Будет ли этот контрол работать под win7 64 bit?
...
Рейтинг: 0 / 0
24.12.2012, 15:30
    #38090820
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
tur91,

На каком языке написать ?
...
Рейтинг: 0 / 0
25.12.2012, 13:05
    #38091801
tur91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
MasterZiv, на VС++

Есть ли в express С++ 2010 соответствующий DirListBox (vb6) контрол
Если взять ListBox, то там нет айконов папок... можно конечно пережить, но зачем же объект лишили функциональности

А вообще у меня проблемы элементарней

Как получить список папок в данной папке

Что здесь неверно?

array<DirectoryInfo^>^ listdirs = Directory->GetDirectories(dirPath);

Эх, помог бы мне кто-нибудь хоть чуть-чуть онлайн въехать в С

на всякий случай мой мейл tur991@gmail.com
...
Рейтинг: 0 / 0
25.12.2012, 19:21
    #38092467
tur91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
Пытаюсь написать функцию возвращающую список папок и список файлов для заданного пути
Сначала папки
Код: plaintext
1.
2.
3.
4.
5.
System::String^ dirPath = "D:\\"; // определяем путь

// создаем объект только для того чтобы потом вызвать GetDirectories
System::IO::DirectoryInfo ^ dirs = gcnew System::IO::DirectoryInfo(dirPath); 
array<DirectoryInfo^>^ listdirs = dirs->GetDirectories(); // находим все папки


А теперь нужно некоторые известные папки из массива listdirs убрать,
например такую "System Volume Information"

Подскажите как это сделать?

Вот начинаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
int rows_in_list = listdirs->Length; // исходное число папок 
array<DirectoryInfo^>^ listdir;   // заготовленный массив в который будут помещаться нужные папки
String^ str1; // темповый стринг
String^ str2 = "System Volume Information"; // имя папки, которую надо убрать из списка папок
int at(0), j(-1);
for (int i = 0; i < rows_in_list; i++)
{
        str1 = listdirs[i]->Name; // shortname папки
	at = str1->IndexOf(str2); // проверяю (наверняка неправильно) содержит ли строка str1 строку str2
	if (at == -1)
	  listdir[++j]->Name = listdirs[i]->Name; // если не содержит копирую ее в выходной массив
}


Но таким образом как в последней строчке стринги не копируются.
...
Рейтинг: 0 / 0
25.12.2012, 20:55
    #38092574
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
tur91А теперь нужно некоторые известные папки из массива listdirs убрать,
например такую "System Volume Information"
по атрибутам такое нужно фильтровать
...
Рейтинг: 0 / 0
25.12.2012, 21:31
    #38092600
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
tur91Пытаюсь написать функцию возвращающую список папок и список файлов для заданного пути
Сначала папки
Код: plaintext
1.
2.
3.
4.
5.
System::String^ dirPath = "D:\\"; // определяем путь

// создаем объект только для того чтобы потом вызвать GetDirectories
System::IO::DirectoryInfo ^ dirs = gcnew System::IO::DirectoryInfo(dirPath); 
array<DirectoryInfo^>^ listdirs = dirs->GetDirectories(); // находим все папки


А теперь нужно некоторые известные папки из массива listdirs убрать,
например такую "System Volume Information"

Подскажите как это сделать?

Вот начинаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
int rows_in_list = listdirs->Length; // исходное число папок 
array<DirectoryInfo^>^ listdir;   // заготовленный массив в который будут помещаться нужные папки
String^ str1; // темповый стринг
String^ str2 = "System Volume Information"; // имя папки, которую надо убрать из списка папок
int at(0), j(-1);
for (int i = 0; i < rows_in_list; i++)
{
        str1 = listdirs[i]->Name; // shortname папки
	at = str1->IndexOf(str2); // проверяю (наверняка неправильно) содержит ли строка str1 строку str2
	if (at == -1)
	  listdir[++j]->Name = listdirs[i]->Name; // если не содержит копирую ее в выходной массив
}


Но таким образом как в последней строчке стринги не копируются.


Это не С++.
Тебя куда перекинуть? В .net?
...
Рейтинг: 0 / 0
25.12.2012, 23:03
    #38092680
tur91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
Да, это WinForms, .Net Framework

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
26.12.2012, 19:32
    #38094041
tur91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа на WF C++ miniexplorer
Еще раз: простая программа возвращающая лист папок и лист файлов по заданному пути
Код: plaintext
1.
2.
3.
4.
5.
ref struct dirsfiles // объявляем структуру возвращаемую функцией
{ 
    array<DirectoryInfo^>^ list_dirs;
    array<FileInfo^>^ list_files;
};


сама функция
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
dirsfiles getdirsfiles(String^ dirPath)
{
   System::IO::DirectoryInfo ^ dirs;
   dirs = gcnew System::IO::DirectoryInfo(dirPath);
   dirsfiles ff; // list folders and list files
   ff.list_dirs = dirs->GetDirectories();
   ff.list_files = dirs->GetFiles();
   return ff;
}


Но на строке 'return ff;' получаю ошибку error C2440: 'return' : cannot convert from 'dirsfiles' to 'dirsfiles'

Подскажите пожалуйста в чем моя ошибка
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программа на WF C++ miniexplorer / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]