我有一个非常基本的控制台应用程序,我用C ++开发 - CLI。所有应用程序都将文件传输到ftp服务器。每个文件都会根据需要进行传输。我可以打开
.jpeg
.png
.gif
但是当我尝试打开.docx
或.xlsx
时,我收到以下错误消息
下面的
是相关的代码片段
const int bufferLength = 2048;
array<Byte>^buffer = gcnew array < Byte >(bufferLength);
int count = 0;
int readBytes = 0;
FileStream^ stream = File::OpenRead(originalDirPath + e->Name);
do
{
readBytes = stream->Read(buffer, 0, bufferLength);
requestStream->Write(buffer, 0, bufferLength);
count += readBytes;
}
while (readBytes != 0);
Console::WriteLine("Writing {0} bytes to the stream.", count);
我似乎无法弄清楚我出错的地方
答案 0 :(得分:2)
您正在记录变量readBytes
中实际读取的字节数,但您正在写入缓冲区的大小,而不是读取的字节数。您拨打write()
的电话应使用readBytes
,而不是bufferLength
。