Member 13818142 Ответов: 1

Получение значения исключения не может быть нулевым при загрузке файлов по ftp


Привет,
Я написал ниже код для загрузки файлов на ftp, но получаю исключение, так как значение не может быть нулевым и путь имени параметра, не уверен, где я ошибаюсь вчера загружал файлы с тем же кодом, но сегодня получаю исключение. пожалуйста помочь.

Что я уже пробовал:

 FtpWebRequest request = (FtpWebRequest)WebRequest.Create(FTPFullPath +"\\"+ Path.GetFileName(Renamefiles[i]));
 request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = newnetworkCredential(myftpcreds.UserName,myftpcreds.Password);
 byte[] filecontents;//unable to read bytes
     using (StreamReader sourceStream = new StreamReader(Renamefiles[i]))
         {
    filecontents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());                             }
   request.ContentLength = filecontents.Length;
   using (Stream requestStream = request.GetRequestStream())
  {
      requestStream.Write(filecontents, 0, filecontents.Length);
     }

1 Ответов

Рейтинг:
1

OriginalGriff

Мы не можем сказать - у нас нет доступа к вашему приложению, пока оно работает, и вам это нужно, чтобы начать смотреть на проблему, потому что то, что находится в различных переменных, является ключом к проблеме.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Кстати: если вы пытаетесь передать файлы, используйте любую кодировку: вместо этого считывайте файлы как байтовые потоки. Кодировка в формате UTF8 или что-то еще может изменить содержимое файла (поскольку не все значения кодируются) и повредить нетекстовые файлы в процессе передачи. Использование байтов означает, что все данные передаются как есть и без изменений.