Вывод с моего /proc/partitions8 0 732574584 sda 8 1 1 sda1 8 5 341991657 sda5 8 6 390580281 sda6 8 16 976761527 sdb 8 17 976760001 sdb1 8 32 244198584 sdc 8 33 104391 sdc1 8 34 1028160 sdc2 8 35 102406342 sdc3 8 36 140657107 sdc4 11 0 1048575 sr0 8 48 7831552 sdd 8 49 7830528 sdd1sdd -это флешка, sr0 -cdrom - не то ни другое не подмантированно fd0 у меня нет просто нет устройства
void QMount_Widget::get_devices(QStringList *devices_name){ QFile file; QTextStream stream(&file); QString buffer; QStringList buffer_list; file.setFileName("/proc/partitions"); if(file.open(QIODevice::Text|QIODevice::ReadOnly)){ buffer=stream.readAll(); file.close(); } buffer_list=buffer.split(QRegExp("\\W+\\d+"),QString::SkipEmptyParts); buffer_list.removeFirst(); buffer.clear(); for(int i=0;i<buffer_list.count();i++) buffer+=buffer_list.at(i); buffer.remove(QRegExp("[a-z]{3}\\s")); buffer_list=buffer.split(QRegExp("\\s+"),QString::SkipEmptyParts); for(int i=0;i<buffer_list.count();i++){ buffer_list[i]="/dev/"+buffer_list.at(i); devices_name->append(buffer_list.at(i)); } buffer.clear(); buffer_list.clear(); file.setFileName("/etc/mtab"); if(file.open(QIODevice::Text|QIODevice::ReadOnly)){ buffer=stream.readAll(); file.close(); } int lastpos=0,number_item=0,count_items; count_items=buffer.count(QRegExp("\/dev\/[a-z]{2,3}\\d")); for(int i=0;i<count_items;i++){ lastpos=buffer.indexOf(QRegExp("\/dev\/[a-z]{2,3}\\d"),lastpos); number_item=buffer.indexOf(" ",lastpos)-lastpos; buffer_list.append(buffer.mid(lastpos,number_item)); lastpos+=number_item; } for(int i=0;i<buffer_list.count();i++) devices_name->removeAt(devices_name->indexOf(buffer_list.at(i))); for(int i=0;i<devices_name->count();i++) qDebug()<<devices_name->at(i);}