C#FTP下载-JSON文件

C#FTP下载-JSON文件,c#,json,ftp,C#,Json,Ftp,在我的代码中,我想上传并下载一个特定的JSON文件到FTP服务器 连载效果很好,上传效果也很好。当我通过例如FileZilla查找文件时,文件的内容是正确的。(在服务器上) 但是当我用我的应用程序(以及我的代码——不是用FileZilla)下载这个文件时,我没有得到任何异常,但是这个文件几乎是空的。这是唯一的内容: {} 以下是我的下载代码: string ResponseDescription = ""; FtpWebRequest req = (FtpWebR

在我的代码中,我想上传并下载一个特定的JSON文件到FTP服务器

连载效果很好,上传效果也很好。当我通过例如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;
        }

我找到了解决办法。这是我的错误。问题不在于下载-代码是正确的(如您所说)


下载文件后,JSON反序列化将运行,原因如下。我的反序列化逻辑有点错误

你有没有用调试器检查一下,看看发生了什么?另外,您正在将
req.UseBinary
设置为
true
,但该文件是一个文本文件,我不知道这是否可能是一个问题。您好,是的,我已经完成了代码。我看不出有什么问题。是的。。。这是一次尝试。当然,这不是二进制文件,属性应该为“false”。它不适用于“真”和“假”。这只是一次“尝试”。)@MaxLebold a)您的代码似乎是正确的b)您获得的文件(
{}
)看起来不像是一个部分下载的文件,而是一个有效的空json。你的bug应该在别的地方。但是它会在什么地方呢?当上传到服务器工作正常时,服务器上的文件是正确的,只有使用我的代码下载文件后,文件才是空的。请将您的答案作为答案发布在下面,然后将其标记为已接受。你不应该把答案编辑成你的问题。