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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: определить владельца файла  (Прочитано 4984 раз)
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 уважением, Константин

Записан
SimpleSunny
Гость
« Ответ #1 : Май 28, 2010, 09:54 »

Оно?
Код
C++ (Qt)
QString QFileInfo::group () const
uint QFileInfo::groupId () const
QString QFileInfo::owner () const
uint QFileInfo::ownerId () const
Записан
kopernik21187
Гость
« Ответ #2 : Май 28, 2010, 10:10 »

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

тут по ходу проблема в кодировке... какая системная.... и какая кодировка исходника??
Записан
kopernik21187
Гость
« Ответ #4 : Июнь 03, 2010, 16:08 »

совсем забыл отписать
решилось все так
Код:
     QByteArray str=fileName_1.toUtf8();    // в этих двух строчках идет преобразование кодировок, 
     QFileInfo fi(QFile::decodeName(str)) ; // чтобы распознавались и файлы с русским названием

Записан
ритт
Гость
« Ответ #5 : Июнь 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.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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