Russian Qt Forum
Ноябрь 06, 2024, 18:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить список USB носителей?  (Прочитано 5097 раз)
jurtal
Гость
« : Декабрь 04, 2009, 09:11 »

Нужно на флешку переписывать файлы. Если кто знает как получить список USB носителей, пожалуйста поделитесь опытом...
Записан
niXman
Гость
« Ответ #1 : Декабрь 04, 2009, 09:24 »

1. QDir::drives()
2. проверяешь тип носителя - http://msdn.microsoft.com/en-us/library/aa364939%28VS.85%29.aspx
Записан
jurtal
Гость
« Ответ #2 : Декабрь 04, 2009, 09:32 »

Мне в линуксе нужно.
Записан
niXman
Гость
« Ответ #3 : Декабрь 04, 2009, 09:35 »

http://forum.vingrad.ru/index.php?showtopic=262325&view=findpost&p=1889856
Записан
izoomer
Гость
« Ответ #4 : Декабрь 04, 2009, 18:29 »

Мне в линуксе нужно.
можно через DBUS и HAL:
Код:
QStringList myClass::getUnmountedPartition()  
{
QDBusMessage reply = iface->call( "FindDeviceByCapability", "block" );

QList <QVariant> args = reply.arguments();

QStringList listDevicesStr;

foreach(QString _device, args[0].toStringList() ){

const QString devStr(_device);

QDBusInterface * device = new QDBusInterface( "org.freedesktop.Hal",  devStr, "org.freedesktop.Hal.Device", QDBusConnection::systemBus(), this);

QDBusMessage isVolume = device->call( "GetProperty", "block.is_volume" );
if ( !isVolume.arguments()[0].toBool() ) continue;
QDBusMessage fsType = device->call( "GetProperty", "volume.fstype" );
if ( fsType.arguments()[0].toString() == "swap" ) continue;

QDBusMessage isMount = device->call( "GetProperty", "volume.is_mounted" );
if ( isMount.arguments()[0].toBool() == false ){
listDevicesStr << devStr;
}
delete device;
}
return listDevicesStr;
}


возвращает список неподмаунченых разделов , в том числе и флешек всяких.
можно посмотреть вывод hal-device и выискивать что тебе надо из этого списка.

В общем спрашивай, чем смогу помогу.
Записан
QCasper
Гость
« Ответ #5 : Декабрь 04, 2009, 18:39 »

Вот, писал для своих задач. Надеюсь, поможет.

Используйте сигнал volumeMounted для получения точки монтирования подключенной флешки.

P.S. файл проекта там снесите/исправьте под свои нужды только, забыл сам это сделать
« Последнее редактирование: Декабрь 04, 2009, 18:41 от QCasper » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 21.