在textBox中输入ftp时如何检查ftp有效地址?

时间:2014-11-13 20:31:05

标签: c# .net winforms validation

我有这个textBox Textchanged事件:

private void anyTextBox_TextChanged(object sender, EventArgs e)
        {
            btnUpload.Enabled = txtHost.TextLength > 0 && txtUploadFile.TextLength > 0;
            checkBox1.Enabled = txtDir.TextLength > 0;
            this.Invalidate();
        }

我在里面输入ftp地址的textBox是:txtHost

ftp地址已包含ftp:// 用户只应输入textBox的地址,例如:

  • myftp.test.com
  • myftp.com
  • 1.3.4.5

问题是用户可以在textBox中输入任何内容,如果我只输入例如:dfsdfsf

然后在上传的课程中,它将无法解析此地址:

using(Stream requestStream = request.GetRequestStream())

它将抛出异常:无法解析远程名称:'dfcdfdsf'

所以我想在这个事件中做的TextChanged是用户只能输入/粘贴有效的ftp地址。

例如:3.4.5.6有效吗?或ftp.test.com?还有哪些其他格式作为ftp地址有效? 如何在TextChanged事件中进行检查,这样如果用户键入/粘贴无效格式,它将抛出一个messageBox?

1 个答案:

答案 0 :(得分:2)

就像@JamesBlond在命令中所说,dfsdfsf也可以是一个有效的地址。 我会建议你让用户在检查ftp地址之前按一个按钮,在键入时检查它,然后尝试连接到某些服务器,这将花费你的内存,你的程序可能会运行得更慢,因为它反复执行{{ 1}}代码。

您可以使用regex排除某些永远不会用于ftp地址的字符。

如果您确实想在键入时检查它,请不要在每个TextChanged事件上检查它,因此请在检查地址前等待一到两秒钟。 (可以使用计时器完成)。