2014-01-02 3 views
0

В моем коде я хочу загрузить и загрузить определенный JSON-файл на FTP-сервер.C# FTP Download - JSON File

Сериализация прекрасно работает, а также загружает. Когда я просматриваю файл через - например, FileZilla, содержимое файла верное. (на сервере)

Но когда я загружаю этот файл в свое приложение (и с моим кодом - НЕ с FileZilla), я не получаю никаких исключений, но файл почти пуст. Это единственное содержание:

{}

И вот мой код для скачивания:

 string ResponseDescription = ""; 
     FtpWebRequest req = (FtpWebRequest)FtpWebRequest.Create("ftp://" + "ftp.strato.com" + "/" + verzeichnis + "/" + file.Name); 
     req.Method = WebRequestMethods.Ftp.DownloadFile; 
     req.Credentials = new NetworkCredential(this.benutzer, this.passwort); 
     req.UseBinary = true; 
     req.UsePassive = false; 
     req.Proxy = null; 
     try 
     { 
      FtpWebResponse response = (FtpWebResponse)req.GetResponse(); 
      Stream stream = response.GetResponseStream(); 
      byte[] buffer = new byte[2048]; 
      FileStream fs = new FileStream(destinationFolder + @"/" + destinationFile.Name, FileMode.Create); 
      int ReadCount = stream.Read(buffer, 0, buffer.Length); 
      while (ReadCount > 0) 
      { 
       fs.Write(buffer, 0, ReadCount); 
       ReadCount = stream.Read(buffer, 0, buffer.Length); 
      } 
      ResponseDescription = response.StatusDescription; 
      fs.Close(); 
      stream.Close(); 

      return true; 
     } 
     catch (Exception e) 
     { 
      MessageBox.Show(e.Message); // TODO - better Errorhandling 
      return false; 
     } 
+0

Вы прошли через него с помощью отладчика, чтобы посмотреть, что происходит? Кроме того, вы устанавливаете 'req.UseBinary' в' true', но файл является текстовым файлом, я не знаю, может ли это быть проблемой или нет. –

+0

Привет, да, я прошел через код. Я не вижу проблемы. И да ... это была попытка. Конечно, это не двоичный файл, а свойство должно быть «ложным». Он не работает с «истинным» и «ложным». Это была всего лишь «попытка». :) – Maximus1809

+1

@MaxLebold a) ваш код кажется правильным. B) файл, который вы получаете ('{}'), не похож на частично загруженный файл, а не на действительный пустой json. Ваша ошибка должна быть где-то в другом месте. –

ответ

0

Я нашел решение. Это была моя ошибка. Проблема не в загрузке - код был прав (как вы сказали).

После загрузки файла запускается JSON-Deserialization, и вот причина. У меня была небольшая ошибка в моей логике десериализации.