如何使用FtpWebRequest接收字节?

时间:2015-03-04 18:27:30

标签: c# .net ftp stream ftpwebrequest

我正在编写我的第一个主要项目;一个FTP客户端。我设法让它连接,并请求所有文件的列表等(正确格式化目录xD)但它让我想知道,当我请求文件时,我读取了对Stream的响应。现在我理解很多人使用StreamReader但这是用于文本而不是二进制文件?那么FTP服务器如何准确地发送数据呢?我是否可以假设,如果我直接从流中读取,可以将所有内容放入byte[]

2 个答案:

答案 0 :(得分:1)

确实如果您使用StreamReader,它会尝试将Stream中的字节解释为文本。是什么意思,它会尝试根据特定的编码来解释它(默认情况下是UTF-8)。如果实际数据是二进制的,那么什么不是好主意。

请参阅StreamReader documentation

  

实现一个TextReader,它从特定编码的字节流中读取字符。

如果您想以字节方式访问流,那么使用Stream读取StreamReader是没有意义的。那就是Stream可以使用Read method自行完成的事情。

答案 1 :(得分:-1)

计算机中的所有数据都是字节。 StreamReader可用于任何格式文件,包括文本和二进制文件。在低级别,ftp服务器使用套接字使用字节发送数据。在我看来,将所有数据放在byte []中是安全的,你可以用各种方式解释它们。