Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: jurtal от Декабрь 04, 2009, 09:11



Название: Как получить список USB носителей?
Отправлено: jurtal от Декабрь 04, 2009, 09:11
Нужно на флешку переписывать файлы. Если кто знает как получить список USB носителей, пожалуйста поделитесь опытом...


Название: Re: Как получить список USB носителей?
Отправлено: niXman от Декабрь 04, 2009, 09:24
1. QDir::drives()
2. проверяешь тип носителя - http://msdn.microsoft.com/en-us/library/aa364939%28VS.85%29.aspx


Название: Re: Как получить список USB носителей?
Отправлено: jurtal от Декабрь 04, 2009, 09:32
Мне в линуксе нужно.


Название: Re: Как получить список USB носителей?
Отправлено: niXman от Декабрь 04, 2009, 09:35
http://forum.vingrad.ru/index.php?showtopic=262325&view=findpost&p=1889856


Название: Re: Как получить список USB носителей?
Отправлено: izoomer от Декабрь 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 и выискивать что тебе надо из этого списка.

В общем спрашивай, чем смогу помогу.


Название: Re: Как получить список USB носителей?
Отправлено: QCasper от Декабрь 04, 2009, 18:39
Вот, писал для своих задач. Надеюсь, поможет.

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

P.S. файл проекта там снесите/исправьте под свои нужды только, забыл сам это сделать