|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
|
SoWa |
|
|||
Харекришна Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
Суть проблеммы в том, что существует некая технология в файловых системах NTFS, позволяющая дописывать в файл информацию, при этом его размер не меняется. Похоже называется файловыми потоками(FileStream- вроде не то).
Если кто знает- что это за технология и как с ней работать посредствам Дельфи. -------------------- Всем добра |
|||
|
||||
SoWa |
|
|||
Харекришна Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
А может быть как то используется свободное место жесткого диска, а в файл только указатель дописывается?
Это сообщение отредактировал(а) SoWa - 26.2.2006, 20:18 -------------------- Всем добра |
|||
|
||||
Girder |
|
|||
Лентяй 2 Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Файл занимает больше... чем видеш в инфе об файле... из-за выравнивания "на сектор/кластер". Вот в енто не использованное место можеш писать(если конечно... размер ентого места будет тебе достаточен ).
Если мне неизменяет память... p0s0l выкладывал пример через Mapping пример ентого. Также можеш взять в арсенале его пример dfa.zip и его использывать. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
mes |
|
||||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
Это относится к FAT, но не к NTFS. В системе NTFS понятие файла отличается. Файл состоит из: 1) Запись в МФТ(католог записей) 2) Базовый поток 3) Прицепленые потоки. Размером файла является тол'ко размер базового потока. А в прицепленые потоки можно приписать скольугодно большой объем информации и это не отразится на размере файла! Но при копировании такого файла в другую файловую систему Виндоуз сообщит, что прицепленые данные будут утеряны. Есть еще одна особеность у NTFS. Файлы малой длины не занимают пространство в области данных, а располагаются в МФТ-зоне. Добавлено @ 00:15
да. только не к самому файлу, а к записи индефицирующий етот файл. |
||||
|
|||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
||||
|
||||
Girder |
|
|||
Лентяй 2 Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
1. А при чем здесь "многопоточные файлы" и структура диска?
2. Любой поток... храниться на диске, а не в воздухе. 3. Именно к основному потоку... и приводились примеры записи. Вот только с сжатыми файлами не проверял... будут ли приведенные коды работать или нет. PS: И не "каталог записей", а "главная файловая таблица" Мдя'мс вот только вопрос я в начале не правильно прочитал... енто же про "многопоточные файлы"... Добавлено @ 01:24 PS: http://www.ntfs.com/ Добавлено @ 01:26 http://www.ntfs.com/ntfs-multiple.htm -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
NTFS просто поддерживает многопоточные файлы, а FAT нет. Да свободное пространство диска уменьшается, но "видимый нами" размер файла остаётся прежним. ;) хотел выразится по понятней, но не получилось |
|||
|
||||
Girder |
|
|||
Лентяй 2 Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Ну ентом понятно. Я говорю об другом... а именно о записи в не доиспользованное место сектора(которое также возможно и в NTFS).
PS: Я ж говорю... не правильно прочитал вопрос в начале. Ладно... уговорили. Даже Delphi запустил... для на всяк пожарной проверки SoWa, все енто до безобразия очень просто:
PS: Но лудше... имхо все таки скрывать не в "опциональных потоках"... а так как говорил выше. -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
Неа не лучше. Во первых можно повредить файл(неизвестно как поведет себя если файл сжат). во вторых приписать можно только ограниченый обьем. При копировании етого файла в другое место информация будет потеряна. |
|||
|
||||
Girder |
|
|||
Лентяй 2 Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Вот с ентим ХЗ... Там идет варавнивание на 16 кластеров... часть из них виртуальные... короче... лудше проверять атрибут и не пытаться записывать в сжатый файл(по первому варианту).
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
Спасибо Sowa, что привлек внимание к этой теме. Я подумал а не скрывает ли что от меня Windows. Поэтому сравнил объем занятого пространства дисков с общим размером рассположеных на нём файлов. На системных была значительная разница. (3Гб на одном и почти 2Гб на другом). Я решил поексперентировать и перенес все файлы (включая системные) на другой диск. Совершено пустой диск занимал почти 2Гб. Мне ето не понравилось и я отфармотировал етот диск. После вернул файлы на место и перезагрузился с только что отфармотированного диска. К моему удивлению система загрузилась и намного быстрей. Более того увеличилась скорость доступа к диску. Результат 5гб " дополнительного " пространства. И нормальная дефрагментации диска. |
|||
|
||||
SoWa |
|
|||
Харекришна Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
Так достаточно просто дефрагментацию сделать.
-------------------- Всем добра |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
Суть не в дефрагментации, а в освобожденном пространстве(5Гб! на двух дисках обшим объемом 40Гб), которое было "поглощено" только на системных! дисках. И в увелечение скорости доступа. P.S. Плюс дефрагментации была произведена за день до експеримента. P.S.S. А ты знал что родная Виндоузкая дефрагментация, делает свою работу не очень хорошо : оставляет очень много фрагментированных файлов? Это сообщение отредактировал(а) mes - 3.3.2006, 03:18 |
|||
|
||||
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |