У меня есть много сотен XML-файлов, которые обрабатываются один за другим. Я хочу применить другой, существующий код к данным в файлах. Однако этот код записывается в ожидании одного файла или потока, представляющего один файл.Объединить много файлов XML в один поток
Я посмотрел на
How do I concatenate two System.Io.Stream instances into one?
Однако StreamEnumerator
представил в ответ Марка, требует потоков, которые будут открыты для всех файлов, о которых идет речь сразу. Это не похоже на хороший подход, учитывая большое количество файлов в моем случае.
Существующий код потребляет поток, как это:
XmlReader reader = XmlReader.Create(xmlStream);
Есть ли лучший способ объединить множество файлов в один поток?
Метод кажется ОК. Я думаю, что вам нужно будет добавить в начале потока что-то вроде « -», удалите «» при добавлении каждого файла и добавьте «<\global_doc>» в конец потока. –
Graffito
Я стараюсь не открывать сразу сотни или, возможно, несколько тысяч потоков. –
Метод состоит в создании единственного xmlStream, который будет использоваться существующим кодом. Запустите отдельный поток, чтобы записать данные в поток, прочитав один файл другого, чтобы файлы были объединены. После запуска отдельного потока выполните «XmlReader reader = XmlReader.Create (xmlStream);». – Graffito