如何解决 ftp 错误 450

how to solve ftp error 450

我想使用定时器(内部 15 秒)获取 Ftp 文件

但我的程序无法 运行 正确,然后 Return 错误如下

"The remote server returned an error: (450) File unavailable (e.g., file busy)"

这是我的代码。

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);
            }

修复 450 Ftp 错误的方法如下:

  1. 启动计算机并以管理员身份登录。
  2. 单击开始按钮,然后单击 select 所有程序、附件、系统 工具,然后单击系统还原。
  3. 在新的 window、select“将我的计算机恢复到较早的时间” 选项,然后单击下一步。
  4. Select 来自“在此列表中, 单击还原点”列表,然后单击下一步。
  5. 点击下一步确认 window。
  6. 恢复完成后重新启动计算机。