如何解决ftp错误450

时间:2015-07-30 06:10:30

标签: c# ftp

我想使用Timer(内部15秒)获取Ftp文件

但我的程序无法正常运行,然后返回错误

“远程服务器返回错误:(450)文件不可用(例如,文件繁忙)”

这是我的代码。

private void timer1_Tick(object sender, EventArgs e)
        {//interval 15000
            GetFtpFile();
        }

private void GetFtpFile()
        {
            label1.Text = "File Name : ";
            label2.Text = "Process result : ";
            string date = DateTime.Now.ToString("yyMMdd");
            FtpUrl += date;
            try
            {
                FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(FtpUrl);
                ftpRequest.Credentials = new NetworkCredential("root", "pass");
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
                FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
                using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
                {
                    string lastModified = response.LastModified.ToString();

                    List<string> FileName = new List<string>();

                    while (!streamReader.EndOfStream)
                    {
                        FileName.Add(streamReader.ReadLine().Split('/')[1]);
                    }
                    FileName.Sort();
                    if(FileName[FileName.Count-1].Equals(WriteFile) == false)
                    {
                        WriteFile = FileName[FileName.Count - 1];
                        label1.Text = "FileName : " + WriteFile;
                        using(WebClient wc = new WebClient())
                        {
                            wc.Credentials = new NetworkCredential("root", "pass");
                            byte[] FileData = wc.DownloadData(FtpUrl + @"\"+WriteFile);
                            using(FileStream fs = File.Create(di.FullName + @"\" + WriteFile))
                            {
                                fs.Write(FileData,0,FileData.Length);
                                fs.Close();

                            }
                            label2.Text = "Process result : Success";
                        }
                    }
                    streamReader.Close();
                    response.Close();

                }




            }
            catch(Exception ex)
            {
                _log.LogWrite(ex.Message);
            }

1 个答案:

答案 0 :(得分:1)

有两种方法可以修复Error 450 Ftp Error:

高级计算机用户解决方案(手动更新):

  1. 启动计算机并以管理员身份登录。

  2. 单击“开始”按钮,然后选择“所有程序”,“附件”,“系统” 单击工具,然后单击系统还原。

  3. 在新窗口中,选择“将我的计算机还原到更早的时间” 选项,然后单击“下一步”。

  4. 从“在此列表中选择最新的系统还原点, 单击“还原点”列表,然后单击“下一步”。

  5. 在确认窗口中单击“下一步”。

  6. 恢复完成后重新启动计算机。

  7. 新手计算机用户解决方案(完全自动化):

    1. Download (Error 450 Ftp) repair utility.

    2. 安装程序并单击“扫描”按钮。

    3. 扫描完成后,单击“修复错误”按钮。

    4. 重新启动计算机。