Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файловая технология, в NTFS 
:(
    Опции темы
SoWa
Дата 26.2.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Суть проблеммы в том, что существует некая технология в файловых системах NTFS, позволяющая дописывать в файл информацию, при этом его размер не меняется. Похоже называется файловыми потоками(FileStream- вроде не то).
Если кто знает- что это за технология и как с ней работать посредствам Дельфи.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
SoWa
Дата 26.2.2006, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



А может быть как то используется свободное место жесткого диска, а в файл только указатель дописывается?

Это сообщение отредактировал(а) SoWa - 26.2.2006, 20:18


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Girder
Дата 26.2.2006, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Файл занимает больше... чем видеш в инфе об файле... из-за выравнивания "на сектор/кластер". Вот в енто не использованное место можеш писать(если конечно... размер ентого места будет тебе достаточен smile ).

Если мне неизменяет память... p0s0l выкладывал пример через Mapping пример ентого. Также можеш взять в арсенале его пример dfa.zip и его использывать.


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
mes
Дата 27.2.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 2
Всего: 250



Цитата(Girder @ 26.2.2006, 23:48 Найти цитируемый пост)
Файл занимает больше... чем видеш в инфе об файле... из-за выравнивания "на сектор/кластер".

Это относится к FAT, но не к NTFS.

В системе NTFS понятие файла отличается. Файл состоит из:
1) Запись в МФТ(католог записей)
2) Базовый поток
3) Прицепленые потоки.
Размером файла является тол'ко размер базового потока. А в прицепленые потоки можно приписать скольугодно большой объем информации и это не отразится на размере файла!
Но при копировании такого файла в другую файловую систему Виндоуз сообщит, что прицепленые данные будут утеряны.

Есть еще одна особеность у NTFS. Файлы малой длины не занимают пространство в области данных, а располагаются в МФТ-зоне.
Добавлено @ 00:15
Цитата(SoWa @ 26.2.2006, 20:14 Найти цитируемый пост)
А может быть как то используется свободное место жесткого диска, а в файл только указатель дописывается?


да. только не к самому файлу, а к записи индефицирующий етот файл.


--------------------
PM MAIL WWW   Вверх
mes
Дата 27.2.2006, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 2
Всего: 250



Вот нашел немного инфы:
http://www.ixbt.com/storage/ntfs.html


--------------------
PM MAIL WWW   Вверх
Girder
Дата 27.2.2006, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Цитата(mes @ 27.2.2006, 00:13 Найти цитируемый пост)
Это относится к FAT, но не к NTFS.
1. А при чем здесь "многопоточные файлы" и структура диска?
2. Любой поток... храниться на диске, а не в воздухе.
3. Именно к основному потоку... и приводились примеры записи. Вот только с сжатыми файлами не проверял... будут ли приведенные коды работать или нет.

PS: И не "каталог записей", а "главная файловая таблица"

Мдя'мс вот только вопрос я в начале не правильно прочитал... енто же про "многопоточные файлы"...
Добавлено @ 01:24
Цитата(mes @ 27.2.2006, 00:33 Найти цитируемый пост)
Вот нашел немного инфы:
smile

PS: http://www.ntfs.com/
Добавлено @ 01:26
http://www.ntfs.com/ntfs-multiple.htm


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
mes
Дата 27.2.2006, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 2
Всего: 250



Цитата(Girder @ 27.2.2006, 01:19 Найти цитируемый пост)
А при чем здесь "многопоточные файлы" и структура диска?

NTFS просто поддерживает многопоточные файлы, а FAT нет.

Цитата(Girder @ 27.2.2006, 01:19 Найти цитируемый пост)
2. Любой поток... храниться на диске, а не в воздухе.

Да свободное пространство диска уменьшается, но "видимый нами" размер файла остаётся прежним. ;)
Цитата(Girder @ 27.2.2006, 01:19 Найти цитируемый пост)
PS: И не "каталог записей", а "главная файловая таблица"

хотел выразится по понятней, но не получилось smile


--------------------
PM MAIL WWW   Вверх
Girder
Дата 27.2.2006, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Цитата(mes @ 27.2.2006, 01:43 Найти цитируемый пост)
NTFS просто поддерживает многопоточные файлы, а FAT нет
Ну ентом понятно. Я говорю об другом... а именно о записи в не доиспользованное место сектора(которое также возможно и в NTFS).

PS: Я ж говорю... не правильно прочитал вопрос в начале.

Ладно... уговорили. Даже Delphi запустил... для на всяк пожарной проверки smile

SoWa, все енто до безобразия очень просто:
Код
procedure TForm1.Button1Click(Sender: TObject);
begin
 //сохраняем то что в Memo в "многопоточный файл"
 Memo1.Lines.SaveToFile('k:\memo.txt');
 Memo2.Lines.SaveToFile('k:\memo.txt:memo2'); //опциональный поток
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 //читаем в обратном порядке из "многопоточного файла"
 Memo1.Lines.LoadFromFile('k:\memo.txt:memo2'); //опциональный поток
 Memo2.Lines.LoadFromFile('k:\memo.txt');
end;


PS: Но лудше... имхо все таки скрывать не в "опциональных потоках"... а так как говорил выше.


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
mes
Дата 27.2.2006, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 2
Всего: 250



Цитата(Girder @ 27.2.2006, 02:24 Найти цитируемый пост)
а именно о записи в не доиспользованное место сектора(которое также возможно и в NTFS).


Неа не лучше.
Во первых можно повредить файл(неизвестно как поведет себя если файл сжат).
во вторых приписать можно только ограниченый обьем.
При копировании етого файла в другое место информация будет потеряна.



--------------------
PM MAIL WWW   Вверх
Girder
Дата 27.2.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Цитата(mes @ 27.2.2006, 04:49 Найти цитируемый пост)
неизвестно как поведет себя если файл сжат
Вот с ентим ХЗ... Там идет варавнивание на 16 кластеров... часть из них виртуальные... короче... лудше проверять атрибут smile и не пытаться записывать в сжатый файл(по первому варианту).


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
mes
Дата 2.3.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 2
Всего: 250




Цитата(SoWa @ 26.2.2006, 19:41 Найти цитируемый пост)
существует некая технология в файловых системах NTFS


Спасибо Sowa, что привлек внимание к этой теме. Я подумал а не скрывает ли что от меня Windows.
Поэтому сравнил объем занятого пространства дисков с общим размером рассположеных на нём файлов.
На системных была значительная разница. (3Гб на одном и почти 2Гб на другом).
Я решил поексперентировать и перенес все файлы (включая системные) на другой диск.
Совершено пустой диск занимал почти 2Гб. Мне ето не понравилось и я отфармотировал етот диск.
После вернул файлы на место и перезагрузился с только что отфармотированного диска.
К моему удивлению система загрузилась и намного быстрей. Более того увеличилась скорость доступа к диску.
Результат 5гб " дополнительного " пространства. И нормальная дефрагментации диска.


--------------------
PM MAIL WWW   Вверх
SoWa
Дата 2.3.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Так достаточно просто дефрагментацию сделать.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
mes
Дата 3.3.2006, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 2
Всего: 250



Цитата(SoWa @ 2.3.2006, 15:15 Найти цитируемый пост)
Так достаточно просто дефрагментацию сделать.

Суть не в дефрагментации, а в освобожденном пространстве(5Гб! на двух дисках обшим объемом 40Гб), которое было "поглощено" только на системных! дисках. И в увелечение скорости доступа.

P.S. Плюс дефрагментации была произведена за день до експеримента. smile
P.S.S. А ты знал что родная Виндоузкая дефрагментация, делает свою работу не очень хорошо : оставляет очень много фрагментированных файлов? smile

Это сообщение отредактировал(а) mes - 3.3.2006, 03:18


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1876 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.