Название: скрытые спец.папки (. и ..) Отправлено: ритт от Октябрь 20, 2009, 16:27 т.к. я слегка накосячил в этом направлении, ожидается, что в 4.6 папки . и .. *не* будут скрытыми.
в 4.5.х такие папки всегда были скрытыми для никсов и "иногда" для вендов. и старый, и новый варианты предполагают 1)3)4) QFileInfo(".hiddendir").isHidden() != QFileInfo(".hiddendir/subdir/..").isHidden() выполнение утверждения 2) QFileInfo(".hiddendir").isHidden() == QFileInfo(".hiddendir/subdir/..").isHidden() делает необходимым некоторую доводку кода, написанного почти шесть лет назад ) вариант 3) вдобавок ещё требует обратного обхода пути и мне лично кажется абсурдным и, поскольку теперь нужно бы исправлять свой косяк, мне бы хотелось не тупо вернуть как было, а действительно исправить...но не уверен в том, какой вариант в итоге выбрать. помогите выбрать) Название: Re: скрытые спец.папки (. и ..) Отправлено: Alex Custov от Октябрь 20, 2009, 17:45 ящитаю, что
Код: QFileInfo(".hiddendir").isHidden() != QFileInfo(".hiddendir/subdir/..").isHidden() Название: Re: скрытые спец.папки (. и ..) Отправлено: ритт от Октябрь 20, 2009, 17:56 ящитаю, что ну, так и голосуй тогда за вариант 2 :)Код: QFileInfo(".hiddendir").isHidden() != QFileInfo(".hiddendir/subdir/..").isHidden() я так же считаю, что вариант 2 наиболее верный (хоть и более трудозатратен) Название: Re: скрытые спец.папки (. и ..) Отправлено: pastor от Октябрь 20, 2009, 18:26 проголосовал за 2)
Название: Re: скрытые спец.папки (. и ..) Отправлено: Kagami от Октябрь 20, 2009, 18:30 Проголосовал за третий вариант, так как не понял куда отнести случай
".hiddendir/subdir/../.." Название: Re: скрытые спец.папки (. и ..) Отправлено: Alex Custov от Октябрь 20, 2009, 19:30 ну, так и голосуй тогда за вариант 2 :) мне кажется всё таки 1-й вариант. Взять хотя бы самый простой драйвер fs, fat, в ядре, там . и .. обрабатываются специальныи образом. Например: Код
Название: Re: скрытые спец.папки (. и ..) Отправлено: ритт от Октябрь 20, 2009, 20:59 ну, так и голосуй тогда за вариант 2 :) мне кажется всё таки 1-й вариант. Взять хотя бы самый простой драйвер fs, fat, в ядре, там . и .. обрабатываются специальныи образом. Например: Код
Название: Re: скрытые спец.папки (. и ..) Отправлено: Alex Custov от Октябрь 20, 2009, 21:17 и где в коде первый вариант? там как раз второй... я имею ввиду то, что . и .. - это специальные файлы, пути с ними должны всегда раскрываться в полные пути (by design). С этой точки зрения QFileInfo(".hiddendir/subdir/..") и QFileInfo(".hiddendir") будут использовать один и тот же каталог для внутренних операций - ".hiddendir". А в опрос сейчас начинаю вдумываться, и вопросов только больше становится :) Название: Re: скрытые спец.папки (. и ..) Отправлено: lit-uriy от Октябрь 20, 2009, 21:35 Константин, а можно для особо одарённых, подробнее объяснить?
Что значит фраза "должны ли папки со специменами "." и ".." быть скрыты?" Это когда я у Qt прошу список каталогов, некого заданного каталога и в ответ получаю QStringList содержащий имена каталогов, то будут ли "." и ".." в этом списке? Или о чём-то другом речь? Название: Re: скрытые спец.папки (. и ..) Отправлено: ритт от Октябрь 20, 2009, 21:57 Константин, а можно для особо одарённых, подробнее объяснить? Что значит фраза "должны ли папки со специменами "." и ".." быть скрыты?" Это когда я у Qt прошу список каталогов, некого заданного каталога и в ответ получаю QStringList содержащий имена каталогов, то будут ли "." и ".." в этом списке? Или о чём-то другом речь? у кутэ ты это просишь посредством QDirIterator (либо через врап в QDir), а там есть соответствующий флаг - NoDotAndDotDot, посредством которого ты можешь явно указать нужны ли тебе эти папки или нет. но в первом варианте если не выставлен флаг Hidden (т.е. фильтрацию по умолчанию), спец.каталогов в списке не будет, т.к. они в соответствии с документацией *всегда* скрыты, а флаг NoDotAndDotDot не установлен. как по мне, то это мутота какая-то... но лично для меня это вторично. а первично - пример со сравнением свойств файлинфов с разными путями на входе, указывающими на один и тот же каталог - т.е. всё тот же пресловутый COMPARE(QFileInfo(".hiddendir").isHidden(), QFileInfo(".hiddendir/subdir/..").isHidden()) полагаю, все уже догадались, что .hiddendir и .hiddendir/subdir/.. указывают на один каталог - .hiddendir Название: Re: скрытые спец.папки (. и ..) Отправлено: lit-uriy от Октябрь 20, 2009, 22:06 ага, тогда я бы ожидал, что результат сравнения даст истину (т.е. вариант №2 в твоём первом сообщении), ведь я могу передавать для сравнения не явные пути (жашитые в программе), а полученные во время работы программы.
|