Russian Qt Forum

Qt => Общие вопросы => Тема начата: blood_shadow от Август 27, 2010, 15:40



Название: entryList не принимает фильтр
Отправлено: blood_shadow от Август 27, 2010, 15:40
В папке D:/123 лежат файлы с расширением *.olp(самопальное расширение) пробую переименовать используя код:

Код:
QDir obj("D:/123");

    QString strList;
    QStringList Filter;
    Filter << "*.olp";

    foreach(QString str, obj.entryList(Filter, QDir::Files)){
        strList = str;
        strList.replace(QString("olp"), QString("olp9"));
        if (!obj.rename(str, strList)) cout << "False" << endl;
    }

Но ничего не происходит, если же строку
Код:
foreach(QString str, obj.entryList(Filter, QDir::Files))
поменять на
Код:
foreach(QString str, obj.entryList(QDir::Files))
то все получается, но возникает вопрос почему не срабатывает фильтр?
подобный пример был взят с книги Бланшета на 335 стр.


Название: Re: entryList не принимает фильтр
Отправлено: merke от Август 27, 2010, 15:50
Пробуй:

Код:
   QDir obj("D:/123");
        QString strList;
        QStringList Filter;
        Filter << "*.olp";
        QStringList dest = obj.entryList(Filter, QDir::Files);
        foreach(QString str, dest){
            strList = str;
            strList.replace(QString("olp"), QString("olp9"));
            if (!obj.rename(str, strList)) cout << "False" << endl;
        }


Название: Re: entryList не принимает фильтр
Отправлено: merke от Август 27, 2010, 15:54
Хотя и первый вариант работает у меня на 100%. Удостоверься если ли доступ у тебя к этим файлам.


Название: Re: entryList не принимает фильтр
Отправлено: blood_shadow от Август 27, 2010, 16:07
Хотя и первый вариант работает у меня на 100%. Удостоверься если ли доступ у тебя к этим файлам.
Странно не работает и второй вариант
вызов
Код:
 obj.isReadable() 
дает true, а
Код:
 obj.exists("D:/123/111.olp")  
111.olp - файл в той же папке дает false