Scripting.FileSystemObject Объект TextStream поддерживает стиль Unicode в стиле Windows и «обычный текст», модифицированный системной кодовой страницей, но, похоже, не поддерживает UTF8. Однако он может фактически передавать файлы, заблокированные для обновлений, такие как лог-файл IIS.Есть ли объект, открытый DCOM, который позволяет передавать потоковый файл UTF8 с записью?
ADODB.Stream поддерживает UTF-8 (или необработанный двоичный файл), но не будет «LoadFromFile» файл, который был заблокирован для обновления, несмотря на то, что файл открыт, скажем, в блокноте. (Результаты в ошибке: ADODB.Stream File не удалось открыть с кодом ошибки 0x800a0bba) - Это несмотря на попытку открыть поток в режиме «Чтение» или «Общий». Кажется, что COM-объект на стороне сервера требует большей блокировки, чем я на самом деле запрашиваю.
Есть ли другие альтернативы? Я вызываю их удаленно через DCOM, однако даже тестирование самой системы хоста приводит к такому же поведению.
В идеале должен существовать компонент, который будет действовать как поток (т.е. механизмы поиска поддержки), может либо передавать необработанные байты (двоичные), либо обрабатывать обычный текст, Unicode и UTF-8 и может читать файлы, которые открыты для записи. Кто-нибудь знает такого зверя?
Я посмотрю на это, спасибо. В идеале я бы использовал ранее существовавший объект/компонент, но если мне придется сворачивать самостоятельно, это может быть весьма полезно. –
Прошло некоторое время с тех пор, как я использовал трубы, но IIRC примерный код вполне готов к использованию как есть, и с его модификацией в соответствии с вашими потребностями должно быть довольно легко. Трубопроводы выполнены, что оставляет только материал для обработки файлов. – eran
Я не закончил использовать трубы, но попытался самостоятельно обернуть объект потока и разоблачить его через DCom, чтобы делать то, что мне нужно. Мне не удавалось найти «официальную» удаленную версию потока, которая работала одинаково с файлами с записью и Unicode или UTF-8. –