问下,很简单的问题啊,为什么会这样捏,我在timer控件的事件里对FTP服务器上文件夹的情况做了下判断,如果我要下载的文件夹名跟服务器上的文件夹名相同,就下载,就这个简单的东西界面就卡着不动了,我郁闷看下代码
private void btnStartDown_Click(object sender, EventArgs e)//下载按钮方法
{
if (txtDownPath.Text == "")
{
MessageBox.Show("请选择保存文件夹的路径");
}
else
{ timerDownLoad_Tick(sender, e);
}
//下载按钮
private void timerDownLoad_Tick(object sender, EventArgs e)//下载timer
{
timerDownLoad.Enabled = false;
timerDownLoad.Enabled = true;
DownLoad();
}private void DownLoad() //下载方法代码段
{
string[] file = client.file();
if (file.Length == 3)
{
DownLoad();
}
else
{
FTPClient ftp = new FTPClient(txtFTPIP.Text, DateTime.Now.ToShortDateString().ToString(), txtFTPUser.Text, txtFTPPwd.Text, 21);
if (ftp.Connected) //判断是否已经连接成功
{
string downfile = txtDownPath.Text; saveFile = downfile + "\\" + path;
if (!Directory.Exists(saveFile))
Directory.CreateDirectory(saveFile);
//本地创建文件夹 btnStartUp.Enabled = false;
btnStartDown.Enabled = false;
//获取本地保存文件的目录
writeLog("开始下载");
ftp.Get("", saveFile);//设置要下载的文件路径
writeLog("文件夹下载成功");
client.RmDir("2010-5-24");
ftp.DisConnect(); //关闭连接 }
else
{
writeLog("连接服务器失败,,尝试新连接....");
}
}
}
private void btnStartDown_Click(object sender, EventArgs e)//下载按钮方法
{
if (txtDownPath.Text == "")
{
MessageBox.Show("请选择保存文件夹的路径");
}
else
{ timerDownLoad_Tick(sender, e);
}
//下载按钮
private void timerDownLoad_Tick(object sender, EventArgs e)//下载timer
{
timerDownLoad.Enabled = false;
timerDownLoad.Enabled = true;
DownLoad();
}private void DownLoad() //下载方法代码段
{
string[] file = client.file();
if (file.Length == 3)
{
DownLoad();
}
else
{
FTPClient ftp = new FTPClient(txtFTPIP.Text, DateTime.Now.ToShortDateString().ToString(), txtFTPUser.Text, txtFTPPwd.Text, 21);
if (ftp.Connected) //判断是否已经连接成功
{
string downfile = txtDownPath.Text; saveFile = downfile + "\\" + path;
if (!Directory.Exists(saveFile))
Directory.CreateDirectory(saveFile);
//本地创建文件夹 btnStartUp.Enabled = false;
btnStartDown.Enabled = false;
//获取本地保存文件的目录
writeLog("开始下载");
ftp.Get("", saveFile);//设置要下载的文件路径
writeLog("文件夹下载成功");
client.RmDir("2010-5-24");
ftp.DisConnect(); //关闭连接 }
else
{
writeLog("连接服务器失败,,尝试新连接....");
}
}
}
解决方案 »
- FFmpeg转换视频加水印问题
- 调试和运行exe的结果不一致
- 标准表达式中数据类型不匹配
- winform下gridview中的checkbox列,实现点击列头的checkbox来完成全选和不全选
- 正则表达式
- sql问题
- 在GridView中,当point为1是,显示username,point为0时,显示'匿名',怎么实现啊?
- 刚学c#写winform程序,有一小问题!!!!!!!?????????
- C#调用Facebook接口
- 如何判断Session[]着个对象是否存在?
- vs2008 一个控件赋初始化 用vs2005怎么写。
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 c# Socket BinaryReader接收流的问题
string[] file = client.file();
if (file.Length == 3)
{
}//这是判断服务器上文件夹的大小,用来判断服务器上是否有文件的,如果有文件file.length会大于3,没有就=3,如果没有就继续执行 DownLoad();
方法
{
DownLoad();
条件为真时,死循环
private void timerDownLoad_Tick(object sender, EventArgs e)//下载timer
{
timerDownLoad.Enabled = false;
timerDownLoad.Enabled = true;
GetFileInfo();
}private void GetFileInfo() //下载方法代码段
{
string[] file = client.file();
if (file.Length == 3)
{
DownLoad();
}private void DownLoad() //下载方法代码段
{
FTPClient ftp = new FTPClient(txtFTPIP.Text, DateTime.Now.ToShortDateString().ToString(), txtFTPUser.Text, txtFTPPwd.Text, 21);
if (ftp.Connected) //判断是否已经连接成功
{
}
}