|
ADODB.Stream SaveToFile() в цикле приводит к фрагментации | ☑ | ||
|---|---|---|---|---|
|
0
echo77
24.09.13
✎
12:31
|
В общем, получаю данные запросом с MSSQL сервера(картинки)
И в цикле записываю их в файлы вот такой процедурой: Процедура БиоСКУД_СохранитьКартинку(BinaryData, ИмяФайла) // Определим начало заголовка FF,D8,FF,E0 JPEG Массив = BinaryData.Unload(); Смещение = 8; Для н=0 По Массив.ВГраница()-4 Цикл Если Массив[н] = 255 // 0xFF И Массив[н+1] = 216 // 0xD8 И Массив[н+2] = 255 // 0xFF И Массив[н+3] = 224 // 0xE0 Тогда Смещение = н; Прервать; КонецЕсли; КонецЦикла; StreamTypeEnum = Новый Структура("adTypeBinary, adTypeText", 1, 2); SaveOptionsEnum = Новый Структура("adSaveCreateNotExist, adSaveCreateOverWrite", 1, 2); ConnectModeEnum = Новый Структура( "adModeRead, adModeReadWrite, adModeRecursive, adModeShareDenyNone, |adModeShareDenyRead, adModeShareDenyWrite, adModeShareExclusive, |adModeUnknown, adModeWrite", 1, 3, 4194304, 16, 4, 8, 12, 0, 2); Stream = Новый COMОбъект("ADODB.Stream"); NewStream = Новый COMОбъект("ADODB.Stream"); NewStream.Type = StreamTypeEnum.adTypeBinary; NewStream.Mode = ConnectModeEnum.adModeReadWrite; NewStream.Open(); Stream.Type = StreamTypeEnum.adTypeBinary; Stream.Mode = ConnectModeEnum.adModeReadWrite; Stream.Open(); Stream.Write(BinaryData); Stream.Position = Смещение; Stream.CopyTo(NewStream, Stream.Size - Смещение); NewStream.SaveToFile(ИмяФайла, SaveOptionsEnum.adSaveCreateOverWrite); Stream.Close(); NewStream.Close(); КонецПроцедуры в результате, все файлы размером более 1 кластера получаются фрагментированными. Как этого избежать? |
|||
|
1
ДенисЧ
24.09.13
✎
12:33
|
а не пох ли?
|
|||
|
2
echo77
24.09.13
✎
13:05
|
(1) несколько тысяч файлов разбитые на фрагменты приведут к тому что их копирование-перемещение затянется на долго
|
|||
|
3
echo77
25.09.13
✎
12:14
|
Как победить то?
|
|||
|
4
H A D G E H O G s
25.09.13
✎
12:20
|
Дефрагментировать диск перез записью.
|
|||
|
5
echo77
27.09.13
✎
14:21
|
(4) После дефрагментации такая же фигня
|
| Форум | Правила | Описание | Секции | Поиск |