Иллюстрированный самоучитель по Windows2000



              

Потоки


С самой первой версии NTFS позволяла одному файлу иметь несколько потоков. К сожалению, этот весьма удобный механизм использовался очень слабо, хотя применение потоков позволяет изящно решать многие проблемы.

Например, вы создаете файл. Для него необходимо сформировать и сохранить эскиз (уменьшенное изображение содержимого файла, предназначенное для предварительного просмотра) (thumbnail), который, как правило, записывается в конец файла. Для вывода эскиза надо открыть файл, считать информацию заголовка, найти начало нужной вам информации и только после этого считать данные. Можно хранить эскиз в отдельном файле, но в этом случае велика вероятность того, что сам файл будет перенесен в другое место без соответствующего ему эскиза.

Подобную проблему можно решить с использованием нескольких потоков. При создании файла основные данные следует записать в

неименованный поток.

Затем необходимо создать внутри того же файла

именованный поток,

предназначенный для данных образа. Теперь один файл будет содержать два потока.

Проведем следующий эксперимент. На машине Windows 2000 откроем окно командной строки. Перейдем в раздел NTFS и введем следующую команду:

C:\fonts>

DIR > New_Stream.TXT: New_Stream

В результате выполнения этой команды система создаст файл New_Stream.TXT. Он будет содержать два потока: неименованный, в котором находится О байт, и именованный (с именем New_Stream), где будет находиться результат выполнения команды dir. Доступ к именованному потоку можно получить, обратившись к нему по имени через двоеточие после имени файла. В именах потоков, как и в именах файлов, имеет значение регистр символов.

К сожалению, многие утилиты, входящие в состав Windows 2000, не могут работать с именованными потоками. Рассмотрим следующий пример:

C:\fonts>

DIR New_Stream.TXT

Volume in drive С is diskl Volume Serial Number is 5021-EFE6

Directory of C:\fonts

03/18/98 08:36a 0 New_Stream.TXT

1 File(s) 0 bytes

0 Dir(s) 170 968 064 bytes free




Содержание  Назад  Вперед