Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 10
1

Вывод списка подключенных USB-флешек и отображение их содержимого

26.09.2015, 02:33. Показов 7570. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Пишу программу в среде Qt на c++. Подскажите, пожалуйста, есть ли функции для вывода списка подключенных USB- флешек с последующим отображением их содержимого?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2015, 02:33
Ответы с готовыми решениями:

Win 8.1 Ноут не видил usb-флешек. Вообще никаких. Под них нет тома\диска. Хотя мышка usb работает норм
Такая проблема. Вставляю флешку, флешка замигала, но автоматом не открылась как обычно. Я в "Мой...

Вывод на экран содержимого списка ShowData
Реализовать список и функции работы с ним. С помощью рекурсивных алгоритмов реализовать операции:...

Ремонт USB флешек
Добрый день, уважаемые участники форума. Мне часто "на ремонт" приносят флешки, большинство из...

Поиск USB флешек
Здравствуйте. Только изучаю программирование на Си и мне интересно, как получить флешку. Много...

8
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
26.09.2015, 08:33 2
Есть, под виндами через SetupAPI. Но поскольку вы под Qt и задаете подобные вопросы без собственного рытья в MSDN, то рекомендую кроссплатформенную libusb.

Закрепленная тема Библиотеки для работы с USB. Нижний и верхний уровень
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
26.09.2015, 09:36 3
Наверное тебе нужно что-то вроде этого. В самом Qt, насколько я знаю, подобной функциональности(по определению типа диска) нет.

Ну а потом уже проще - используй QStorageInfo, QDir и прочее.
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 10
26.09.2015, 10:15  [ТС] 4
А если, например, так? ТО как потом можно открыть сами файлы и есть проблема. При включении в процессе запуска программы при включении новой флешки, она ее не видит..(

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <QApplication>
#include <QFileSystemModel>
#include <QTreeView>
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QFileSystemModel model;
    model.setRootPath("");
    QTreeView tree;
    tree.setModel(&model);
 
    tree.setAnimated(false);
    tree.setIndentation(20);
    tree.setSortingEnabled(true);
 
    tree.setWindowTitle(QObject::tr("Dir View"));
    tree.resize(640, 480);
    tree.show();
 
    return app.exec();
}
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 10
26.09.2015, 10:15  [ТС] 5
Спасибо. Я работаю под linux

Добавлено через 1 час 11 минут
А если, например, так? ТО как потом можно открыть сами файлы и есть проблема. При включении в процессе запуска программы при включении новой флешки, она ее не видит..(

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <QApplication>
#include <QFileSystemModel>
#include <QTreeView>
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QFileSystemModel model;
    model.setRootPath("");
    QTreeView tree;
    tree.setModel(&model);
 
    tree.setAnimated(false);
    tree.setIndentation(20);
    tree.setSortingEnabled(true);
 
    tree.setWindowTitle(QObject::tr("Dir View"));
    tree.resize(640, 480);
    tree.show();
 
    return app.exec();
}
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
26.09.2015, 11:22 6
...ну написали вы обработку параметров командной строки, какое это имеет отношение к работе USB? Никакого. Потрудитесь пройтись по данной мною ссылке и почитать про LibUSB.
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
26.09.2015, 16:20 7
Цитата Сообщение от nastya25 Посмотреть сообщение
А если, например, так? ТО как потом можно открыть сами файлы и есть проблема. При включении в процессе запуска программы при включении новой флешки, она ее не видит..(
А зачем вам это нужно? Вы под линус или под винду пишете?
Если у вас пользователь должен какой-то файл выбрать или папку, то лучше использовать стандартные Qt'шные диалоги вроде QFileDialog.
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 10
28.09.2015, 09:18  [ТС] 8
под линукс
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
28.09.2015, 11:17 9
Цитата Сообщение от nastya25 Посмотреть сообщение
под линукс
Под Linux обычно нету автоматического монтирования устройств. Это одна из проблем, почему у вас флэшки не будет показывать.
Вторая ваша проблема в том, что примонтированная флэшка будет выглядеть как обычная папка.
Тут можно использовать QStorageInfo::mountedVolumes(), чтобы отследить примонтированные системы.
Но вот как отследить простое включение флэшки обычными средствами QT - без понятия. Тут скорее всего вам нужно подключать и использовать стороннюю библиотеку, типо той же libusb. И от неё уже плясать.
Плюс к этому вам надо переосмыслить использование QFileSystemModel. QFileSystemModel показывает в Linux системную файловую модель, начиная с root. Она не показывает отдельные устройства. Хотите чтобы показывала - наследуйте и изменяйте её. Но это сложный путь. Более лёгкий - это дополнительно показывать список подключённых ФС и затем по нажатию на какую-либо из этих ФС просто фокусировать QFileSystemModel или QTreeView на пути, в котором эта ФС смонтирована.
0
28.09.2015, 11:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2015, 11:17
Помогаю со студенческими работами здесь

Отслеживание USB флешек
Доброго времени суток. Хотелось бы услышать, как корректно определить USB флэшку? Необходимость...

Подключение USB флешек
Вообщем принес мне на днях железяку знакомый, на ней стоит win8.1, он жалуется на то что &quot;при...

Запрет USB флешек
windows server 2012 r2 как через групповые политики запретить доступ всех флешек , кроме...

Выборочное подключение USB-флешек
знаю как сделать в хрюше а семёрочка чёта не даёт править реестр може кто знает только без...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru