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