1. No utilizar nombres de variables cómo 
path que puedan entrar en conflicto con nombres de namespaces, classes (
System.IO.Path) u otros miembros built-in. 
2. Referencia el texto del control 
TextBox1, ya que lo usas más de una vez.
3. También deberías comprobar, antes de intentar crear el directorio, si la ruta/nombre de directorio contiene caracteres ilegales, con la función 
System.IO.Path.GetInvalidFileNameChars o 
System.IO.Path.GetInvalidPathChars dependiendo de si es un nombre de carpeta o una ruta completa.
4. La variable 
di no la usas para nada, dale uso para evitar la siguiente llamada a 
Directory.GetCreationTime.
Un ejemplo:
- Dim text As String = TextBox1.Text 
- Dim dirPath As String = Path.Combine("C:\", text) 
-   
- If String.IsNullOrEmpty(text) Then 
-     MessageBox.Show("Debe asignar un nombre de directorio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop) 
-   
- ElseIf Path.GetInvalidFileNameChars.Any(Function(c) text.Contains(c)) Then 
-     MessageBox.Show("El nombre de directorio contiene caracteres ilegales.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop) 
-   
- ElseIf Directory.Exists(dirPath) Then 
-     MessageBox.Show("El directorio ya existe.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop) 
-   
- Else 
-     Dim di As DirectoryInfo = Directory.CreateDirectory(dirPath) 
-     MessageBox.Show(String.Format("Se ha creado una carpeta: {0}", di.CreationTime.ToString), 
-                     "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information) 
-   
- End If 
Traducción online a C#:
- string text = TextBox1.Text; 
- string dirPath = Path.Combine("C:\\", text); 
-   
- if (string.IsNullOrEmpty(text)) { 
- 	MessageBox.Show("Debe asignar un nombre de directorio.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); 
-   
- } else if (Path.GetInvalidFileNameChars.Any(c => text.Contains(c)) { 
- 	MessageBox.Show("El nombre de directorio contiene caracteres ilegales.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); 
-   
- } else if (Directory.Exists(dirPath)) { 
- 	MessageBox.Show("El directorio ya existe.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); 
-   
- } else { 
- 	DirectoryInfo di = Directory.CreateDirectory(dirPath); 
- 	MessageBox.Show(string.Format("Se ha creado una carpeta: {0}", di.CreationTime.ToString), "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information); 
-   
- } 
-   
- //======================================================= 
- //Service provided by Telerik (www.telerik.com) 
- //======================================================= 
De todas formas para tratar temas de validación de datos introducidos en los campos de un control, lo apto graficamente hablando sería utilizar un proveedor de errores (ErrorProvider).

Ejemplo en VB.Net (el de la imagen GIF)
- Imports System.IO 
-   
- Public NotInheritable Class Form1 : Inherits Form 
-   
-     Private ReadOnly Property DirectoryPath As String 
-         Get 
-             Return String.Format("C:\{0}", TextBox1.Text) ' o Path.Combine("C:\", TextBox1.Text) 
-         End Get 
-     End Property 
-   
-     Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _ 
-     Handles TextBox1.TextChanged, TextBox1.Enter 
-   
-         Dim tb As TextBox = DirectCast(sender, TextBox) 
-   
-         If String.IsNullOrEmpty(tb.Text) Then 
-             Me.ErrorProvider1.SetError(tb, "Debe asignar un nombre de directorio.") 
-   
-         ElseIf Path.GetInvalidFileNameChars.Any(Function(c) tb.Text.Contains(c)) Then 
-             Me.ErrorProvider1.SetError(tb, "El nombre de directorio contiene caracteres ilegales.") 
-   
-         ElseIf Directory.Exists(Me.DirectoryPath) Then 
-             Me.ErrorProvider1.SetError(tb, "El directorio ya existe.") 
-   
-         Else 
-             ' Eliminar error. 
-             Me.ErrorProvider1.SetError(tb, String.Empty) 
-   
-         End If 
-   
-         Label1.Text = Me.ErrorProvider1.GetError(tb) 
-         Button1.Enabled = String.IsNullOrEmpty(Label1.Text) 
-   
-     End Sub 
-   
-     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
-   
-         Dim di As DirectoryInfo = Directory.CreateDirectory(Me.DirectoryPath) 
-             MessageBox.Show(String.Format("Se ha creado una carpeta: {0}", di.CreationTime.ToString), 
-                             "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information) 
-   
-     End Sub 
-   
- End Class 
Traducción online a C#:
- using Microsoft.VisualBasic; 
- using System; 
- using System.Collections; 
- using System.Collections.Generic; 
- using System.Data; 
- using System.Diagnostics; 
- using System.IO; 
-   
- public sealed class Form1 : Form 
- { 
-   
- 	private string DirectoryPath { 
- 			// o Path.Combine("C:\", TextBox1.Text) 
- 		get { return string.Format("C:\\{0}", TextBox1.Text); } 
- 	} 
-   
-   
- 	private void TextBox1_TextChanged(object sender, EventArgs e) 
- 	{ 
- 		TextBox tb = (TextBox)sender; 
-   
- 		if (string.IsNullOrEmpty(tb.Text)) { 
- 			this.ErrorProvider1.SetError(tb, "Debe asignar un nombre de directorio."); 
-   
- 		} else if (Path.GetInvalidFileNameChars.Any(c => tb.Text.Contains(c))) { 
- 			this.ErrorProvider1.SetError(tb, "El nombre de directorio contiene caracteres ilegales."); 
-   
- 		} else if (Directory.Exists(this.DirectoryPath)) { 
- 			this.ErrorProvider1.SetError(tb, "El directorio ya existe."); 
-   
- 		} else { 
- 			// Eliminar error. 
- 			this.ErrorProvider1.SetError(tb, string.Empty); 
-   
- 		} 
-   
- 		Label1.Text = this.ErrorProvider1.GetError(tb); 
- 		Button1.Enabled = string.IsNullOrEmpty(Label1.Text); 
-   
- 	} 
-   
-   
- 	private void Button1_Click(object sender, EventArgs e) 
- 	{ 
- 		DirectoryInfo di = Directory.CreateDirectory(this.DirectoryPath); 
- 		MessageBox.Show(string.Format("Se ha creado una carpeta: {0}", di.CreationTime.ToString), "Éxito", MessageBoxButtons.OK, MessageBoxIcon.Information); 
-   
- 	} 
-   
- } 
-   
- //======================================================= 
- //Service provided by Telerik (www.telerik.com) 
- //=======================================================