将字节数组转换为FileStream

时间:2017-01-31 02:28:21

标签: arrays powershell filestream

我需要帮助将字节数组转换为文件流。我正在使用以下powershell脚本从Web下载文档

$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 ##

任何帮助?

1 个答案:

答案 0 :(得分:0)

我不熟悉Sharepoint API,但查看FileCreationInformation class的文档,我看到request.addHeader(HttpHeaders.CONTENT_TYPE, "application/json")类型为byte[]。假设它与Content property具有相同的用途,你可以做到......

$FileCreationInfo.Content = $bytearr

如果您不需要'URL'处的数据用于填充$FileCreationInfo以外的任何内容,请考虑拨打ContentStream property以获取Stream数据首先......

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

作为最后的手段,并回答一般问题,你可以"转换"将byte[]包裹在WebClient.OpenRead method ...

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

我已从代码段中省略了这一点,但如果SharePoint客户端无法处理,请不要忘记MemoryStream / Close()您创建的任何--resume-failed个对象那对你而言!