通过 FTP 传输后某些文件将无法打开

Certain files won't open once transferred via FTP

我有一个非常基本的控制台应用程序,它是用 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);

我似乎无法弄清楚我哪里出错了

您正在记录变量 readBytes 中实际读取的字节数,但您写入的是缓冲区的大小,而不是读取的字节数。您对 write() 的调用应使用 readBytes,而不是 bufferLength