Название: Как обработать все файлы из папки? Отправлено: Anton от Июль 19, 2005, 22:39 Например, из текущей папки мне нужно обработать (открыть, выдрать строки и пр.) все файлы, как ЭТО сделать?
Название: Как обработать все файлы из папки? Отправлено: Perchilla от Июль 20, 2005, 01:27 Вот ведь задача. Я тоже кроме платформозависимых штук ничего не придумал :shock: .
Название: Как обработать все файлы из папки? Отправлено: L.Marvell от Июль 20, 2005, 19:18 версия Qt?
если 4, то QDir::etryList(...) Название: Как обработать все файлы из папки? Отправлено: SLiDER от Июль 20, 2005, 22:43 To All. Господа, что вы, ведь на Qt свет клином не сошелся. есть еще масса хороших библиотек, чего нет в Qt можно достать там.
To Anton. Boost::filesystem спасет вас. Подробности там -> http://boost.org/libs/filesystem/doc/index.htm Название: Как обработать все файлы из папки? Отправлено: Hellenna от Июль 21, 2005, 13:35 Цитата: "L.Marvell" версия Qt? если 4, то QDir::etryList(...) в 3.3.4. тоже есть QDir::entryList() и оно работает. Название: Как обработать все файлы из папки? Отправлено: ElderOrb от Июль 21, 2005, 14:24 А может быть кто-нибудь знает каким образом получить QFileInfoList директорий, не содержащий в себе директорий "." и ".." ?
Название: Как обработать все файлы из папки? Отправлено: Zigmar от Июль 21, 2005, 20:59 Цитата: "ElderOrb" А может быть кто-нибудь знает каким образом получить QFileInfoList директорий, не содержащий в себе директорий "." и ".." ? А в чем проблемма их пропускать?! Название: Как обработать все файлы из папки? Отправлено: Sergeich от Июль 22, 2005, 01:09 Цитата: "Perchilla" Вот ведь задача. Я тоже кроме платформозависимых штук ничего не придумал :shock: . А чем тебя кутевые ср-ва не устроили? Название: Как обработать все файлы из папки? Отправлено: Lem03 от Июль 22, 2005, 11:08 Может я не вполне понял задачу, но по моему все проще.
Вот например размер каталога: long long Form1::imageSpace( const QString &path ) { QDir dir(path); QStringList files = dir.entryList("*", QDir::Files); long long size = 0; QStringList::Iterator it; it = files.begin(); while (it != files.end()) { size += QFileInfo(path, *it).size(); ++it; } QStringList dirs = dir.entryList(QDir::Dirs); it = dirs.begin(); while (it != dirs.end()) { if (*it != "." && *it != "..") size += imageSpace(path + "/" + *it); ++it; } return size; } Название: Как обработать все файлы из папки? Отправлено: ElderOrb от Июль 22, 2005, 11:21 К примеру я хочу сделать рекурсивную функцию, которая проверяет, содержит ли каталог подкаталоги, и если да - вызывает сама себя для каждого подкаталога, а если нет - удаляет каталог при условии что он не содержит файлов определённого расширения. В этом случае отсеивать "." и ".." желательно на этапе формирования списка подкаталогов через QDir::entryInfoList. Тогда можно было бы посмотреть пуст ли сгенерённый entryInfoList. Я думал что установка фильтров типа QDir::Dirs | QDir::NoSymLinks поможет. Ошибался, однако..
p.s. Скорее всего "." и ".." перестанут быть проблемой если использовать более "ровный" алгоритм рекурсивного поиска. Я же стал реализовывать всё так, как это сразу пришло в голову.. ж) Название: Как обработать все файлы из папки? Отправлено: L.Marvell от Июль 22, 2005, 13:14 Цитата: "Hellenna" Цитата: "L.Marvell" версия Qt? если 4, то QDir::etryList(...) в 3.3.4. тоже есть QDir::entryList() и оно работает. Третью не юзал, потому не знаю :) Начал сразу с 4 Название: Как обработать все файлы из папки? Отправлено: Perchilla от Июль 22, 2005, 22:14 Цитата: "Sergeich" Цитата: "Perchilla" Вот ведь задача. Я тоже кроме платформозависимых штук ничего не придумал :shock: . А чем тебя кутевые ср-ва не устроили? Название: Как обработать все файлы из папки? Отправлено: Hellenna от Июль 25, 2005, 20:47 Цитата: "ElderOrb" К примеру я хочу сделать рекурсивную функцию, которая проверяет, содержит ли каталог подкаталоги, и если да - вызывает сама себя для каждого подкаталога, а если нет - удаляет каталог при условии что он не содержит файлов определённого расширения. когда-то писала функцию рекурсивного удаления файлов из каталога. Может поможет, по-моему, вставить туда проверку условия не сложно :wink: Код: bool TextEdit::removeDir(const QString dirName){ Название: Как обработать все файлы из папки? Отправлено: ElderOrb от Июль 25, 2005, 21:01 Спасибо!.. К этому времени я примерно также решил вопрос ж) Но вот что мне до сих пор не нравится - так это невозможность заданием какого-нибудь фильтра отсеить "." и ".." на этапе создания списка. Послать что ли на троллтех "фича реквест"?
|