Russian Qt Forum
Ноябрь 24, 2024, 09:28
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
проблемы с NTFS stream - Qt4.2.2
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: проблемы с NTFS stream - Qt4.2.2 (Прочитано 5642 раз)
Joe
Гость
проблемы с NTFS stream - Qt4.2.2
«
:
Февраль 13, 2007, 16:20 »
Обнаружил неприятную особенность при работе с NTFS-streams - при попытке открыть с помощью QFile для WriteOnly в основной поток в файле - дополнительные стримы затираются нафиг. Это вообще-то безобразиё и очень грустно. Может там не в курсе о такой фиче в виндах?
Записан
WW
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #1 :
Февраль 14, 2007, 13:35 »
Это чисто виндусовая фича и к кросплатформенности не имеет отношения. Используй WinAPI для этого файла. Но потеряешь переносимость. Если она для тебя важна.
Записан
Joe
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #2 :
Февраль 14, 2007, 20:02 »
спасибо блин за содержательный и развёрнутый ответ, а то я не в курсе был, что это не кросплатформенная фича!
Больше никогда не буду пользовать QT для своих виндовых проектов.
Шутка.
А если по существу - то это серьёзный баг, и кросплатформенность тут ни при чём. Если кросплатформенная библиотека будет требовать от вас сужения области её применимости - значит её писала M$, а не trolltech.
Записан
nova
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #3 :
Февраль 14, 2007, 21:26 »
А мне вот, после Вашего обсуждения, стало очень интересно что такое NTFS-streams?
И зачем оно надо?
Если Вас не затруднит, объясните!
Записан
Joe
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #4 :
Февраль 14, 2007, 21:49 »
тут всё просто - файл в NTFS как слоёный пирог - может содержать не только один поток, а под-потоки - они именуются просто добавлением :имяпотока к имени файла. Для некоторых вещей крайне удобное мероприятие, и весьма прозрачно поддерживается операционкой. К примеру, храните в основном потоке описалово данных, а в доп-потоках - ломти данных - тогда не надо при изменении.удалении ломтей переносить куски файла, чтоб место не терялось, или там например при расширении - не сдвигать ничо. Или убить ломоть или новый добавить. Можно по другому - в основном потоке масса информации, а в доп. потоках - метаданные, которые могут потом добавляться/убираться. Я, к примеру, сеттинги для приложений храню там, расточительно немного, но очень удобно, не надо кучу конфигурационных файлов таскать, и не забудет их никто себе закинуть при переносе. Очевидно, что это всё живёт только на NTFS, но это не повод ими не пользоваться, для меня переносимость - не самоцель, а требование проекта.
Записан
nova
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #5 :
Февраль 15, 2007, 22:51 »
А я понял, это очередной велосипед М$ чтоб сказать что у них новые фичи появились
а у программистов новый г<bs> болячка на одно место
Это как ы структуре док и других файлов офиса. По сути создается образ "диска" со своим фатомв заголовке и своими функциями для обработки всего ентого
( смотри структуру DOC файла, там и свой дир , и свой ФАТ присутсствуют. ток называются по другому)
И сам М$ этим не пользуется, поскольку при записи документа старый файл переименовывается в бак, и создается новый, так быстрее
Если для Вас "переносимость - не самоцель, а требование проекта" то проще и павельнее создавать каталог с неким колличеством файлов/потоков и с ними работать.
Так будет и быстрее ( как в работе так и в написании ) и переносимее
или изобретать свой вормат вайлов под вашу конкретную задачу, что неизменно преведет к повышению производительности программы и к увеличению времени ее написания
добавлено спустя:
Забыл добавить енту фичу еще могут пользовать вирусы, для незаметного цепляния к файлу
Записан
Tonal
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #6 :
Февраль 16, 2007, 07:53 »
Вообще-то потоки появились в OS/2 раньше чем в Win-де.
Кроме того, они активно используються в маках (если я не ошибаюсь).
Так что на лицо заговор воротил софтового бизнеса против бедных програмеров! ;-)
Записан
WW
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #7 :
Февраль 16, 2007, 11:09 »
Joe, если ты файлик со своими данными вдруг положишь на FAT, или клиент, для которого ты пишешь, ну для переноса куда-нить, все твои потоки отвалятся. Винда тебя правда об этом предупредит. И ты получишь гемморой. Ради интереса - попробуй на флешку скин дистр фреймворка .NET. А потом установи.
Записан
yurror
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #8 :
Февраль 16, 2007, 14:22 »
Ого. не знал что OS/2'овские FS держат потоки. уже хотябы от сюда потоки есть вещь кроссплатформенная.
А вот из мира UNIX прочтите про XFS и поймете что потоки на самом деле кроссплатформенная всчь. и если они не поддерживаются ext* это не повод на них забить.
в баг лист однозначно!
добавлено спустя 3 минуты:
Цитата: "nova"
...
Забыл добавить енту фичу еще могут пользовать вирусы, для незаметного цепляния к файлу
не такое оно уж и незаметное! если копируешь файл содержащий потоки с NTFS на FAT explorer говорит: "ахтунг! мы кажись что-то потеряли!"
Касперский пятый помоему этим делом страдает навешивает свою инфу в потоках.
Записан
Joe
Гость
проблемы с NTFS stream - Qt4.2.2
«
Ответ #9 :
Февраль 16, 2007, 19:08 »
...да вообще-то пофиг, будут ли в qt поддерживать потоки и на какой операционке, главное - чтобы он НЕ ПОРТИЛИ файл при работе с ним.
Разговор о нужности оставим, каждый для себя решает, что ему удобно, я же не учу тут никого, заметьте. Я считаю и проверил тестами, что это наиболее подходящий механизм для моёй задачи. точка.
Вообще, я не понял, тут что за такая армия радетелей за кросплатформенную разработку окопаласть, интересно, а это всё практикующие спецы, или просто тупое желание показать на наглядном примере какие умные?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...