Функция рекурсивного удаления папок не работает если в папке есть файлы только для чтения.
Функция QFile::remove() при попытке удалить такой файл возвращает false. Чтобы этого избежать нужно выставлять права для таких файлов. В Qt для этого есть функция
bool QFile::setPermissions ( const QString & fileName, Permissions permissions ) [static]
Таким образом окончательный вид функции удаления каталога имеет вид:
среда, 27 января 2010 г.
четверг, 21 января 2010 г.
Очистка каталога
void cleanFolder(const QString & folder)
{
QDir dir(folder);
//Получаем список файлов
QStringList lstFiles = dir.entryList(QDir::Files);
//Удаляем файлы
foreach (QString entry, lstFiles)
{
QString entryAbsPath = dir.absolutePath() + "/" + entry;
QFile::remove(entryAbsPath);
}
}
* This source code was highlighted with Source Code Highlighter.
вторник, 19 января 2010 г.
Подсветка кода для блога
Изначально я планировал в этом блоге писать о программировании на Qt. Однако сейчас на блоге больше всего постов о покере, Москве, пиве и прочем непотребстве.
Объясняю в чем секрет - отсутствие толковой подсветки кода. Те куски кода, что я помещал в блог имели столь ужасное форматирование и подсветку, что без содрогания читать программу просто невозможно. Я перепробовал множество подсветчиков, однако у всех были недостатки - кто-то по глупому делает подсветку, кто-то мутит с CSS, что вызывает трудности со вставкой кода.
Наконец я нашел приличный подсветчик: http://source.virtser.net
Он не использует CSS и делает подсветку аналогично Visual Studio.
Вот пример сгенеренного им кода.
На мой взгляд - лучшее решение для вставки кода в блог.
Объясняю в чем секрет - отсутствие толковой подсветки кода. Те куски кода, что я помещал в блог имели столь ужасное форматирование и подсветку, что без содрогания читать программу просто невозможно. Я перепробовал множество подсветчиков, однако у всех были недостатки - кто-то по глупому делает подсветку, кто-то мутит с CSS, что вызывает трудности со вставкой кода.
Наконец я нашел приличный подсветчик: http://source.virtser.net
Он не использует CSS и делает подсветку аналогично Visual Studio.
Вот пример сгенеренного им кода.
ApPhotoRobot::ApPhotoRobot(QWidget * parent )
: DirSelecter(tr("Applications - PhotoRobot"), parent)
{
lstlblPath.at(0)->setText(tr("Folder of Bars PhotoRobot"));
lstlblName.at(0)->setText(tr("Executable name of Bars PhotoRobot"));
leOut = new QLineEdit(this);
QLabel * lblOut = new QLabel(tr("Output folder for Bars Photorobot"), this);
QToolButton * btnBars = new QToolButton(this);
btnBars->setFixedSize(20, 20);
btnBars->setText("...");
connect(btnBars, SIGNAL(clicked()), this, SLOT(browseDir()));
mapBtnEdt[btnBars] = leOut;
grid->addItem(new QSpacerItem(1, 10, QSizePolicy::Fixed, QSizePolicy::Fixed), 5, 0);
grid->addWidget(lblOut, 6, 0, 1, 2);
grid->addWidget(leOut, 7, 0);
grid->addWidget(btnBars, 7, 1);
grid->setRowStretch(8, 1);
}
* This source code was highlighted with Source Code Highlighter.
На мой взгляд - лучшее решение для вставки кода в блог.
Подписаться на:
Сообщения (Atom)