Я пытаюсь прочитать локальный файл и загрузить его на ftp-сервере. когда я читаю файл изображения, все в порядке, но когда я читаю файл doc или docx, FileStream возвращает length = 0. Вот мой код: Я проверил с некоторыми другими файлами, кажется, что он отлично работает только с изображениями и он возвращает 0 для любого другого файлаFileStream возвращает Length = 0
if (!ftpClient.FileExists(fileName))
{
try
{
ftpClient.ValidateCertificate += (control, e) => { e.Accept = true; };
const int BUFFER_SIZE = 64 * 1024; // 64KB buffer
byte[] buffer = new byte[BUFFER_SIZE];
using (Stream readStream = new FileStream(tempFilePath, FileMode.Open, FileAccess.Read))
using (Stream writeStream = ftpClient.OpenWrite(fileName))
{
while (readStream.Position < readStream.Length)
{
buffer.Initialize();
int bytesRead = readStream.Read(buffer, 0, BUFFER_SIZE);
writeStream.Write(buffer, 0, bytesRead);
}
readStream.Flush();
readStream.Close();
writeStream.Flush();
writeStream.Close();
DeleteTempFile(tempFilePath);
return true;
}
}
catch (Exception ex)
{
return false;
}
}
Я не мог найти в этом ничего плохого. не могли бы вы мне помочь?
Случается ли это только с файлами doc/docx? Является ли доступ отличным от файлов изображений? – davidgiga1993
Вы говорите, что 'readStream.Length' равен нулю? Вы тестировали это с помощью отладчика или предполагали его на основе получения файла нулевого размера на ftp-сервере? Если последнее, я предлагаю вам журналы исключений, поскольку что-то, вероятно, не так и как просто возвращает false, когда это происходит. –
Я проверил с некоторыми другими файлами, кажется, что он отлично работает только с изображениями и возвращает 0 для любого другого файла –