2009-04-28 3 views
0

Scripting.FileSystemObject Объект TextStream поддерживает стиль Unicode в стиле Windows и «обычный текст», модифицированный системной кодовой страницей, но, похоже, не поддерживает UTF8. Однако он может фактически передавать файлы, заблокированные для обновлений, такие как лог-файл IIS.Есть ли объект, открытый DCOM, который позволяет передавать потоковый файл UTF8 с записью?

ADODB.Stream поддерживает UTF-8 (или необработанный двоичный файл), но не будет «LoadFromFile» файл, который был заблокирован для обновления, несмотря на то, что файл открыт, скажем, в блокноте. (Результаты в ошибке: ADODB.Stream File не удалось открыть с кодом ошибки 0x800a0bba) - Это несмотря на попытку открыть поток в режиме «Чтение» или «Общий». Кажется, что COM-объект на стороне сервера требует большей блокировки, чем я на самом деле запрашиваю.

Есть ли другие альтернативы? Я вызываю их удаленно через DCOM, однако даже тестирование самой системы хоста приводит к такому же поведению.

В идеале должен существовать компонент, который будет действовать как поток (т.е. механизмы поиска поддержки), может либо передавать необработанные байты (двоичные), либо обрабатывать обычный текст, Unicode и UTF-8 и может читать файлы, которые открыты для записи. Кто-нибудь знает такого зверя?

ответ

0

Я не уверен, что это то, что вы ищете, но вы можете создать собственный серверный стример, посмотрите на IPipeByte. Это интерфейс, который существует после win2k и позволит вам легко передавать байты между клиентом и сервером. Поскольку вы будете делать фактическое чтение из файла, проблемы с разрешениями будут только теми, которые ОС навязывает вам. И, конечно, текстовый формат не будет проблемой вообще.

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

+0

Я посмотрю на это, спасибо. В идеале я бы использовал ранее существовавший объект/компонент, но если мне придется сворачивать самостоятельно, это может быть весьма полезно. –

+0

Прошло некоторое время с тех пор, как я использовал трубы, но IIRC примерный код вполне готов к использованию как есть, и с его модификацией в соответствии с вашими потребностями должно быть довольно легко. Трубопроводы выполнены, что оставляет только материал для обработки файлов. – eran

+0

Я не закончил использовать трубы, но попытался самостоятельно обернуть объект потока и разоблачить его через DCom, чтобы делать то, что мне нужно. Мне не удавалось найти «официальную» удаленную версию потока, которая работала одинаково с файлами с записью и Unicode или UTF-8. –