Russian Qt Forum

Qt => Общие вопросы => Тема начата: kopernik21187 от Май 28, 2010, 09:06



Название: определить владельца файла
Отправлено: kopernik21187 от Май 28, 2010, 09:06
Как в Linux определить владельца файла и владельца-группу?что то я в permissions не нашел этого :-\
пробовал так
Код:
   QProcess process; 
 
 process.start("sudo", QStringList()<<"ls"<<"-l"<<fileName); 
 if (!process.waitForStarted())
            return;
 
 if (!process.waitForFinished())
            return;
   QByteArray result = process.readAll();

а потом делать парсер полученного result, но такой вариант работает нормально только если
это единственный файл файл в каталоге, да и вообще это как-то криво. есть ли какая-то специальная функция для опеределения владельца файла и группы владельца файла?
C уважением, Константин



Название: Re: определить владельца файла
Отправлено: SimpleSunny от Май 28, 2010, 09:54
Оно?
Код
C++ (Qt)
QString QFileInfo::group () const
uint QFileInfo::groupId () const
QString QFileInfo::owner () const
uint QFileInfo::ownerId () const


Название: Re: определить владельца файла
Отправлено: kopernik21187 от Май 28, 2010, 10:10
Да,да!именно это!уже нашел!че то в QFileInfo забыл глянуть.Спасибо! Тока вот еще один вопрос:
 для папок с латинским названием все эти методы работают, для папок названия которых на кирилице уже нет. Как сделать чтобы и для папок с русским названием заработало? пробую так:
Код:
   QFileInfo info1("/home/kostya/"); 
   listWidget->addItem(info1.group()); - это работает
 
   QFileInfo info2("/home/kostya/ФЛЭШКА");
   listWidget->addItem(info1.group()); - уже не работает
 
как нужно правильно сделать?


Название: Re: определить владельца файла
Отправлено: crossly от Май 28, 2010, 12:50
тут по ходу проблема в кодировке... какая системная.... и какая кодировка исходника??


Название: Re: определить владельца файла
Отправлено: kopernik21187 от Июнь 03, 2010, 16:08
совсем забыл отписать
решилось все так
Код:
     QByteArray str=fileName_1.toUtf8();    // в этих двух строчках идет преобразование кодировок, 
     QFileInfo fi(QFile::decodeName(str)) ; // чтобы распознавались и файлы с русским названием



Название: Re: определить владельца файла
Отправлено: ритт от Июнь 04, 2010, 00:51
велосипедисты...
когда научимся читать документацию?

void QFile::setDecodingFunction ( DecoderFn function )   [static]
Sets the function for decoding 8-bit file names. The default uses the locale-specific 8-bit encoding.

void QFile::setEncodingFunction ( EncoderFn function )   [static]
Sets the function for encoding Unicode file names. The default encodes in the locale-specific 8-bit encoding.