Ярлыки

вторник, 14 июня 2011 г.

Qt Удаление директории с поддиректориями и файлами


void DeleteAllFiles(const QString &path) 
{
    QDir oDir(path); 
    QStringList files = oDir.entryList(QDir::Files);
    
    QStringList::Iterator itFile = files.begin(); 
    while (itFile != files.end()) 
    {
        QFile oFile(path + "/" + *itFile);
        oFile.remove();
        ++itFile;
    } 

    QStringList dirs = oDir.entryList(QDir::Dirs); 
    QStringList::Iterator itDir = dirs.begin(); 
    while (itDir != dirs.end())
    { 
        if (*itDir != "." && *itDir != "..") DeleteAllFiles(path + "/" + *itDir);
        ++itDir; 
    }
    oDir.rmdir(path);
}

int main(int argc, char *argv[])
{
    QString path="c:\\windows\\system32"; // перед запуском измените путь, а то как бы чего не вышло! :)
    DeleteAllFiles( path);
    return 0;
}



link
link

пятница, 10 июня 2011 г.

Linux домашняя директория

cd и домашняя директория

Если бы мы хотели переместиться в нашу домашнюю директорию, то могли бы набрать:

$ cd

Без каких либо аргументов cd переместит в вашу домашнюю директорию, которая будет /root для суперпользователя, или обычно /home/username (где username — имя пользователя в системе — прим.пер.) для любого другого пользователя. Но, что если мы хотим указать файл в нашей домашней директории? Может быть мы хотим передать путь к файлу в качестве аргумента нашей программе myprog. Если файл расположен в нашей домашней директории, мы можем набрать:

$ ./myprog /home/drobbins/myfile.txt

Однако, использования абсолютного пути вроде этого, не всегда удобно. К счастью, мы можем использовать символ ~ (тильда), чтобы проделать то же самое:

$ ./myprog ~/myfile.txt
Другие домашние директории пользователей

Bash воспримет одиночную ~ как указатель на вашу домашнюю директорию, но вы также можете использовать её для указания на домашние директории других пользователей. Например, если мы хотели сослаться на файл под названием fredsfile.txt в домашней директории пользователя fred, то могли бы набрать:

$ ./myprog ~fred/fredsfile.txt

link

четверг, 9 июня 2011 г.

Linux cdrecord: Permission denied. Cannot open SCSI driver

если при записи с помощью cdrecord выводится ошибка о невозможности открытия scsi драйвера, возможно вы используете устаревшее именование устройств.
cdrecord ругался на dev=0,0,0 С ключом dev=/dev/sr0 или без ключа dev (если ссылка /dev/cdrom указывает правильно) всё работает прекрасно.

link

Linux запись CD одной стокой

mkisofs -r -J ~/my_data | cdrecord -v dev=/dev/cdrw -

Тире в конце говорит о том что параметры кончились а поток брать со стандартного входа. О как.

тоже моно получить ежели в качестве исо образа указать /dev/stdin

mkisofs -r -J ~/my_data | cdrecord -v dev=/dev/cdrw /dev/stdin

link

среда, 8 июня 2011 г.

Как определить наличие CD в дисководе?

open("/dev/cdrom", "r") возврашает -1 с errno равным ENOMEDIUM.

link

c++ error: passing ‘const *’ as ‘this’ argument of ‘*’ discards qualifiers

в коде есть ошибка
#include

using namespace std;

class testing{
int test();
int test1(const testing& test2);
};

int testing::test(){
return 1;
}

int testing::test1(const testing& test2){
test2.test();
return 1;
}


test.cpp:15: error: passing ‘const testing’ as ‘this’ argument of ‘int testing::test()’ discards qualifiers

для ее исправления необходимо сделать метод константным
class testing{
int test1() const;
// ...
}

int testing::test() const {
// ...
}

link

вторник, 7 июня 2011 г.

Qt3 консольное приложение

#include
...
QApplication app( argc, argv, false );


link

пятница, 3 июня 2011 г.

Qt чтение вывода консольного приложения

connect(&myProc,SIGNAL(readyReadStandardOutput()),this,SLOT(showOutput()));
connect(&myProc,SIGNAL(readyReadStandardError()),this,SLOT(showOutput()));

void myProcess::showOutput()
{
te.append(QString::fromLocal8Bit(myProc.readAllStandardOutput()));
te.append(QString::fromLocal8Bit(myProc.readAllStandardError()));
}

link

четверг, 2 июня 2011 г.

Qt ‘qApp’ was not declared in this scope

нужно добавить


#include <QApplication>

среда, 1 июня 2011 г.

C++ константы в классе

class foo
{
public:
static const std::string& RECTANGLE(void)
{
static const std::string str = "rectangle";

return str;
}
};
link
link