Ir al contenido

Capítulo 30: Verificar si carpeta existe

Parte IX: Archivos y Carpetas - Sección 17: Operaciones con archivos - Nivel: Intermedio


Al finalizar este capítulo serás capaz de:

  • Usar la clase System.IO.Directory
  • Verificar la existencia de directorios con Exists
  • Crear nuevas carpetas automáticamente con CreateDirectory

  • Conceptos básicos de Rutas (Strings)
  • Namespace System.IO

Antes de exportar un PDF o guardar un Backup, debes asegurarte de que la carpeta de destino existe. Si no, EPLAN podría dar un error.

En .NET, la clase para manejar carpetas es System.IO.Directory.


using System.IO;
if (Directory.Exists(@"C:\Temp"))
{
// La carpeta existe
}
else
{
// No existe
}

Es importante recordar que las rutas en C# suelen requerir el @ antes de las comillas para interpretar correctamente las barras invertidas (\).


Si la carpeta no existe, podemos crearla. Lo genial de este método es que crea toda la ruta necesaria.

// Crea C:\Proyectos, luego 2025, luego Enero
Directory.CreateDirectory(@"C:\Proyectos\2025\Enero");

3. Ejemplo práctico: Asegurar ruta de exportación

Sección titulada «3. Ejemplo práctico: Asegurar ruta de exportación»

Basado en EPLAN-Scripting-4.0/12_FilesFolders/01_CheckFolder.cs:

using System.Windows.Forms;
using System.IO; // Importante
using Eplan.EplApi.Scripting;
public class VerificarCarpeta
{
[Start]
public void Function()
{
string rutaObjetivo = @"C:\EPLAN_Export\PDFs\";
try
{
if (Directory.Exists(rutaObjetivo))
{
MessageBox.Show("La carpeta ya existe.");
}
else
{
Directory.CreateDirectory(rutaObjetivo);
MessageBox.Show("Carpeta creada correctamente.");
}
}
catch (System.Exception ex)
{
MessageBox.Show("Error al manejar carpeta: " + ex.Message);
}
}
}

  • Usa System.IO.Directory.
  • Directory.Exists() para verificar.
  • Directory.CreateDirectory() para crear.
  • Este patrón “Check-Create” es fundamental antes de cualquier operación de escritura.

Ver capítulos anteriores

Ver capítulos siguientes

Ahora veremos lo mismo, pero para archivos individuales.