2017-01-31 5 views
0

Мне нужна помощь для преобразования байт-массива в файловый поток. Я использую следующий Powershell скрипт для загрузки документа с вебПреобразование байт-массива в FileStream

$wc = New-Object System.Net.WebClient 
$bytearr = $wc.downloaddata('URL') 

Теперь мне нужно передать этот массив в FileSteam

$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation 
$FileCreationInfo.ContentStream = ## Need to Pass Byte Array as FileStream ## 

Любая помощь?

+3

'[IO.MemoryStream] $ bytearr'? – wOxxOm

+0

Благодаря @wOxxOm Насколько наивный меня :( – Farhan

+0

Именно @wOxxOm Я ищу примеры Powershell – Farhan

ответ

0

Я не знаком с API Sharepoint, но смотрю документацию для FileCreationInformation class. Я вижу, что есть Content property типа byte[]. Если предположить, что служит той же цели, как ContentStream property, вы могли бы сделать просто ...

$FileCreationInfo.Content = $bytearr 

Если вам не нужны данные на 'URL' ни для чего кроме заселение $FileCreationInfo, рассмотрим вызов WebClient.OpenRead method вместо того, чтобы получить данные, а в первую очередь в Stream ...

$FileCreationInfo.ContentStream = $wc.OpenRead('URI') 

в крайнем случае, и ответить на общий вопрос, вы можете «конвертировать» в byte[] к Stream, обернув его в MemoryStream ...

$FileCreationInfo.ContentStream = New-Object -TypeName 'System.IO.MemoryStream' -ArgumentList (,$bytearr) 

Я опустил это из моих фрагментов коды, но не забудьте Close()/Dispose() любых Stream объектов, которые вы создаете, если клиент SharePoint не обрабатывает это для вас!

Смежные вопросы