Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字节[]转换为文件流而不写入磁盘_C#_Arrays_Filestream - Fatal编程技术网

C# 将字节[]转换为文件流而不写入磁盘

C# 将字节[]转换为文件流而不写入磁盘,c#,arrays,filestream,C#,Arrays,Filestream,我们从一个web服务获得一个作为字节[](我们在内部处理)的输入,我们需要上传到另一个只接受文件流的web服务 如何将字节[]转换为文件流,而不在C#中写入磁盘 编辑:这不是重复的。我不是问如何将字节[]转换为内存流或文件流。我在问如何将字节[]转换为文件流,而不写入磁盘。请注意,我需要将数据作为文件蒸汽发送到第三方web服务,我没有访问权限。此web服务仅接受文件流 到目前为止,我有以下代码: string fileWritePath = "c:\\temp\\test.docx"; //h

我们从一个web服务获得一个作为
字节[]
(我们在内部处理)的输入,我们需要上传到另一个只接受文件流的web服务

如何将
字节[]
转换为文件流,而不在C#中写入磁盘


编辑:这不是重复的。我不是问如何将
字节[]
转换为内存流或文件流。我在问如何将
字节[]
转换为文件流,而不写入磁盘。请注意,我需要将数据作为文件蒸汽发送到第三方web服务,我没有访问权限。此web服务仅接受文件流

到目前为止,我有以下代码:

string fileWritePath = "c:\\temp\\test.docx";
//here fileContent is a byte[]
File.WriteAllBytes(fileWritePath, fileContent);
FileStream fileStream = new FileStream(fileWritePath, FileMode.Open, FileAccess.Read);

我不想将文件写入本地磁盘并创建文件流。

如果您绑定到文件流,则必须使用它。如果您不想使用物理硬盘驱动器,可以在系统上安装一个ram光盘,将部分内存映射到虚拟驱动器,并使用此驱动器将
文件流映射到。

如果您绑定到文件流,则必须使用它。如果您不想使用物理硬盘,可以在系统上安装一个ram磁盘,将部分内存映射到虚拟驱动器,并使用此驱动器将
文件流映射到。

使用:

使用:


创建
MemoryStream
并将字节[]数组“存储”到其中。外部web服务是否接受文件流?这似乎不可能。光盘上有文件流,可以通过网络访问web服务。这是两件完全不同的事情。我同意@Sefe。粗略地说,
FileStream
是资源句柄上的包装器(通常是磁盘上的文件)。此句柄仅在创建文件流的计算机上的本地具有意义。当您将此对象传递给外部web服务器时,底层句柄将没有任何意义。@css除了FileStream之外,web服务怎么可能只有一个呢?如何访问此服务?创建
MemoryStream
并将byte[]数组“存储”到其中。外部web服务接受文件流?这似乎不可能。光盘上有文件流,可以通过网络访问web服务。这是两件完全不同的事情。我同意@Sefe。粗略地说,
FileStream
是资源句柄上的包装器(通常是磁盘上的文件)。此句柄仅在创建文件流的计算机上的本地具有意义。当您将此对象传递给外部web服务器时,底层句柄将没有任何意义。@css除了FileStream之外,web服务怎么可能只有一个呢?如何访问此服务?请参阅我在原始帖子上面的评论:即使您使用ram磁盘,我认为当您通过网络传输文件流时,文件流也无法工作network@GianPaolo:也许OP说的是web服务,但意思是其他的。请看我在原始帖子上面的评论:即使你使用的是ram磁盘,我认为,当您通过网络传输文件流时,它无法工作network@GianPaolo:也许OP说的是web服务,但它的意思是别的。
using(var stream = new MemoryStream(byteArray)){
   SendStreamToService(stream);
}