如何解决 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 错误的方法如下:
- 启动计算机并以管理员身份登录。
- 单击开始按钮,然后单击 select 所有程序、附件、系统
工具,然后单击系统还原。
- 在新的 window、select“将我的计算机恢复到较早的时间”
选项,然后单击下一步。
- Select 来自“在此列表中,
单击还原点”列表,然后单击下一步。
- 点击下一步确认 window。
- 恢复完成后重新启动计算机。
我想使用定时器(内部 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 错误的方法如下:
- 启动计算机并以管理员身份登录。
- 单击开始按钮,然后单击 select 所有程序、附件、系统 工具,然后单击系统还原。
- 在新的 window、select“将我的计算机恢复到较早的时间” 选项,然后单击下一步。
- Select 来自“在此列表中, 单击还原点”列表,然后单击下一步。
- 点击下一步确认 window。
- 恢复完成后重新启动计算机。